// var o = require("./AL_Framework_Game_Middle_Dialog");
// var i = require("./AL_Framework_Round_Middle_Dialog");
// var n = require("./AL_Framework_Chest_Dialog");
// var a = require("./AL_Framework_Game_Rank_Activity");

// var $baseManager = require("./AL_Framework_Base_Manager");
// // var $wxManager = require("./AL_Framework_Wx_Manager");
// window._sdk_version = "2024.7.9.1";
// window._sdk_version_code = 1;
// // window._SDKNativeAdLoadServerRes = !1;
// // window.KEY_IS_SHENHE = "isAudit";
// // window.KEY_IS_OPENPAY = "isOpenPay";

// window.ailin_sdk_manager = module.exports = {
//     serverClose: !1,
//     native_trigger_mode: 0,
//     ad_track_log: !1,
//     instance: null,
//     platform: "",
//     _SceneScale: 1,
//     initOver: !1,
//     _isCloseAD: !1,
//     strengthenMode: 0,
//     isUserNew: !1,
//     _isVideo: !0,
//     _isPay: !0,
//     _isSave: !0,
//     _isGetOnlineData: !0,
//     _isCheckOrde: !0,
//     _currDate: "",
//     _MainScene: "Loading",
//     init: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (e && e.MainScene && "" != e.MainScene) {
//             this._MainScene = e.MainScene;
//         }
//         this.getSysPlatformName();
//         var t = cc.winSize;
//         var o = t.height > t.width ? t.width : t.height;
//         this.sdkWinSize = t;
//         this._SceneScale = o / 720;
//         al_show_log("版本：" + _sdk_version);
//         this.platform = release_platform;
//         if (!this.instance) {
//             try {
//                 if (ailin_gold_key && "" != ailin_gold_key) {
//                     ailin.Key_Gold = ailin_gold_key;
//                 }
//             } catch (e) { }
//             ailin.Props_Base_Gold = ailin_props_base_gold;
//             this.setOpenId_uuid();
//             al_show_log(">>>>>>>>>>>>         init sdk");
//             this.setNewPlayerData();
//             this.initGameData();
//             // if ("oppoH5" == this.platform) {
//             //     this.instance = new $oppoH5Manager();
//             //     this.instance.init(e);
//             // } else {
//             //     if ("undefined" != typeof KSGameGlobal) {
//             //         this.instance = new $kuaiShouManager();
//             //         this.instance.init(e);
//             //     } else {
//             //         if (cc.sys.platform == cc.sys.OPPO_GAME) {
//             //             window.ailin_oppo_login_url && (al_login_url = window.ailin_oppo_login_url);
//             //             this.instance = new $oppoManager();
//             //             this.instance.init(e);
//             //         } else {
//             //             if (cc.sys.platform == cc.sys.VIVO_GAME) {
//             //                 window.lieyou_vivoLoginUrl && (al_login_url = window.lieyou_vivoLoginUrl);
//             //                 this.instance = new $vivoManager();
//             //                 this.instance.init(e);
//             //             } else {
//             //                 if (this.platform == cc.sys.QQ_PLAY) {
//             //                     window.lieyou_qqLoginUrl && (al_login_url = window.lieyou_qqLoginUrl);
//             //                     this.instance = new $qQManager();
//             //                     this.instance.init(e);
//             //                 } else {
//             //                     if (cc.sys.platform == cc.sys.BAIDU_GAME) {
//             //                         this.instance = new $baiDuManager();
//             //                         this.instance.init(e);
//             //                     } else {
//             //                         if (cc.sys.platform == cc.sys.HUAWEI_GAME) {
//             //                             this.instance = new $huaweiManager();
//             //                             this.instance.init(e);
//             //                         } else {
//             //                             if ("xiaoMiH5" == this.platform) {
//             //                                 this.instance = new $xiaoMiManagerH5();
//             //                                 this.instance.init(e);
//             //                             } else {
//             //                                 if ("QuTouTiaoH5" == this.platform) {
//             //                                     this.instance = new $quTouTiaoManagerH5();
//             //                                     this.instance.init(e);
//             //                                 } else {
//             //                                     if ("MagicH5" == this.platform) {
//             //                                         this.instance = new $magicManagerH5();
//             //                                         this.instance.init(e);
//             //                                     } else {
//             //                                         if ("lieyouH5" == this.platform) {
//             //                                             this.instance = new $lieyou_webManager();
//             //                                             this.instance.init(e);
//             //                                         } else {
//             //                                             if (cc.sys.platform == cc.sys.XIAOMI_GAME) {
//             //                                                 this.instance = new $xiaoMiManager();
//             //                                                 this.instance.init(e);
//             //                                             } else {
//             //                                                 if ("jinRiTouTiao" == this.platform || window.tt) {
//             //                                                     window.lieyou_ttLoginUrl &&
//             //                                                         (al_login_url = window.lieyou_ttLoginUrl);
//             //                                                     this.instance = new $jinRiTouTiaoManager();
//             //                                                     this.instance.init(e);
//             //                                                 } else {
//             //                                                     if (cc.sys.platform === cc.sys.WECHAT_GAME) {
//             //                                                         window.ailin_wx_Login_Url &&
//             //                                                             (al_login_url = window.ailin_wx_Login_Url);
//             //                                                         release_platform = "wx";
//             //                                                         this.instance = new $wxManager();
//             //                                                         this.instance.init(e);
//             //                                                     } else {
//             //                                                         if (cc.sys.isNative && cc.sys.os == cc.sys.OS_IOS) {
//             //                                                             this.instance = new $nativeIosManager();
//             //                                                             this.instance.init(e);
//             //                                                         } else {
//             //                                                             if (cc.sys.isNative) {
//             //                                                                 var i = jsb.reflection.callStaticMethod(
//             //                                                                     "com/gm/util/CocosUtil",
//             //                                                                     "getNewStringValue",
//             //                                                                     "(Ljava/lang/String;)Ljava/lang/String;",
//             //                                                                     "channel"
//             //                                                                 );
//             //                                                                 this.instance =
//             //                                                                     "googleplay" == i ?
//             //                                                                     new $googleManager() :
//             //                                                                     new $nativeManager();
//             //                                                                 this.instance.init(e);
//             //                                                             } else {
//             //                                                                 cc.sys.platform === cc.sys.ALIPAY_GAME ?
//             //                                                                     ((window.language = "zh"),
//             //                                                                         (cc.sys.language = "zh"),
//             //                                                                         (ailin.Language_ch = !0),
//             //                                                                         (this.instance =
//             //                                                                             new $alipayManager()),
//             //                                                                         this.instance.init(e)) :
//             //                                                                     window.FBInstant &&
//             //                                                                     FBInstant.getPlatform() ?
//             //                                                                     ((this.instance =
//             //                                                                             new $faceBookManager()),
//             //                                                                         this.instance.init(e)) :
//             //                                                                     ((this.instance = new $baseManager()),
//             //                                                                         this.instance.init(e));
//             //                                                             }
//             //                                                         }
//             //                                                     }
//             //                                                 }
//             //                                             }
//             //                                         }
//             //                                     }
//             //                                 }
//             //                             }
//             //                         }
//             //                     }
//             //                 }
//             //             }
//             //         }
//             //     }
//             // }
//             this.instance = new $baseManager();
//             this.instance.init(e);
//             this._currDate = get_time_day_str(ailin_sdk_manager.getTime());
//             this.getCloseAdDay();
//             this.instance.shezhiYouxiShijian("init");
//             // if (cc.sys.platform === cc.sys.WECHAT_GAME) {
               
//             //     release_platform = "wx";
//             //     this.instance = new $wxManager();
//             //     this.instance.init(e);
//             // }
//         }
//     },
//     initSDKConfig: function (e) {
//         for (var t in (void 0 === e && (e = {}), e)) window[t] = e[t];
//     },
//     isShenhe: function () {
//         return !!this.instance && this.instance.shifouKaiqi(KEY_IS_SHENHE);
//     },
//     getSysPlatformName: function () {
//         var e = "web";
//         //e = "wx";
//         // var t = release_platform;
//         // "oppoH5" == t
//         //     ?
//         //     (e = "oppoH5") :
//         //     "kuaishou" == release_platform || "undefined" != typeof KSGameGlobal ?
//         //     (e = "kuaishou") :
//         //     cc.sys.platform == cc.sys.OPPO_GAME ?
//         //     (e = "oppo") :
//         //     cc.sys.platform == cc.sys.VIVO_GAME ?
//         //     (e = "vivo") :
//         //     cc.sys.platform === cc.sys.WECHAT_GAME && window.qq ?
//         //     ((release_platform = "qq"), (e = "qq")) :
//         //     cc.sys.platform == cc.sys.BAIDU_GAME ?
//         //     (e = "baidu") :
//         //     cc.sys.platform == cc.sys.HUAWEI_GAME ?
//         //     (e = "huawei") :
//         //     "xiaoMiH5" == t ?
//         //     (e = "xiaoMiH5") :
//         //     "QuTouTiaoH5" == t ?
//         //     (e = "QuTouTiaoH5") :
//         //     "MagicH5" == t ?
//         //     (e = "MagicH5") :
//         //     "lieyouH5" == t ?
//         //     (e = "lieyouH5") :
//         //     cc.sys.platform == cc.sys.XIAOMI_GAME ?
//         //     (e = "xiaomi") :
//         //     cc.sys.platform === cc.sys.BYTEDANCE_GAME && window.tt ?
//         //     ((release_platform = "jinRiTouTiao"), (e = "tt")) :
//         //     cc.sys.platform === cc.sys.WECHAT_GAME ?
//         //     (e = "wx") :
//         //     cc.sys.platform === cc.sys.ALIPAY_GAME ?
//         //     (e = "zhifubao") :
//         //     cc.sys.isNative ?
//         //     (e = "native") :
//         //     window.FBInstant && FBInstant.getPlatform() && (e = "facebook");
//         return e;
//     },
//     vibrateShort: function () {
//         this.addBossTitle("短震动");
//         if (this.instance) {
//             this.instance.vibrateShort();
//         }
//     },
//     vibrateLong: function () {
//         this.addBossTitle("长震动");
//         if (this.instance) {
//             this.instance.vibrateLong();
//         }
//     },
//     vibrateCustom: function (e) {
//         this.addBossTitle("自定义震动" + e);
//         if (this.instance) {
//             this.instance.vibrateCustom(e);
//         }
//     },
//     jianceShifouYouShipin: function () {
//         this.addBossTitle("是否可以看视频");
//         return !!this.instance && this.instance.jianceShifouYouShipin();
//     },
//     huoqu_xitong_pingtai: function () {
//         return this.instance ? this.instance.huoqu_xitong_pingtai() : -1;
//     },
//     setOpenId_uuid: function () {
//         user_default.set_data_for_key("enterCount", user_default.get_int_for_key("enterCount", 0) + 1);
//         if ("" == user_default.get_string_for_key("ailin_sdk_openid_uuid", "")) {
//             this.isUserNew = !0;
//             var e = "";
//             var t = [
//                 "0",
//                 "1",
//                 "2",
//                 "3",
//                 "4",
//                 "5",
//                 "6",
//                 "7",
//                 "8",
//                 "9",
//                 "A",
//                 "B",
//                 "C",
//                 "D",
//                 "E",
//                 "F",
//                 "G",
//                 "H",
//                 "I",
//                 "G",
//                 "K",
//                 "L",
//                 "M",
//                 "N",
//                 "O",
//                 "P",
//                 "Q",
//                 "R",
//                 "S",
//                 "T",
//                 "U",
//                 "V",
//                 "W",
//                 "X",
//                 "Y",
//                 "Z",
//                 "a",
//                 "b",
//                 "c",
//                 "d",
//                 "e",
//                 "f",
//                 "g",
//                 "h",
//                 "i",
//                 "g",
//                 "k",
//                 "l",
//                 "m",
//                 "n",
//                 "o",
//                 "p",
//                 "q",
//                 "r",
//                 "s",
//                 "t",
//                 "u",
//                 "v",
//                 "w",
//                 "x",
//                 "y",
//                 "z"
//             ];
//             for (var o = 0; o < 32; o++) {
//                 e += t[parseInt(62 * Math.random())];
//             }
//             openid_uuid = e;
//             user_default.set_data_for_key("ailin_sdk_openid_uuid", e);
//             user_default.set_bool_for_key("newUserFlag", !0);
//             user_default.set_data_for_key("firsttime", getTime());
//         } else {
//             openid_uuid = user_default.get_string_for_key("ailin_sdk_openid_uuid", "");
//         }
//     },
//     initGameData: function () {
//         var e = cc.winSize;
//         var t = 0.5625 * e.height;
//         if (e.width < t) {
//             ailin._SceneScale = e.width / t;
//             ailin._offsetY = (e.height * (1 - e.width / t)) / 2;
//             ailin._offsetX = (e.width * (1 - e.width / t)) / 2;
//         }
//     },
//     onHide: function (e) {
//         if (this.instance) {
//             this.instance.onHide(e);
//         }
//     },
//     onShow: function (e) {
//         if (this.instance) {
//             this.instance.onShow(e);
//         }
//     },
//     xianshiGengduoYouxiJiazaiDonghua: function (e) {
//         if (void 0 === e) {
//             e = null;
//         }
//         this.instance ? this.instance.xianshiGengduoYouxiJiazaiDonghua(e) : e();
//     },
//     showBossKeyNode: function () {
//         var e = cc.winSize;
//         var t = al_bossNode_prefab();
//         this.node_boss = t;
//         cc.director.getScene().addChild(t);
//         t.x = e.width / 2;
//         t.y = e.height / 2;
//         var o = t.addComponent(cc.Widget);
//         o.isAlignTop = !0;
//         o.isAlignLeft = !0;
//         o.top = 0;
//         o.left = 0;
//         cc.game.addPersistRootNode(t);
//     },
//     addBossTitle: function (e, t) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (void 0 === t) {
//             t = cc.Color.WHITE;
//         }
//         if (this.node_boss && al_show_debug) {
//             this.node_boss.getComponent("AL_Framework_Boss_Key_SDK").tianjiaTitle(e, t);
//         }
//     },
//     xianshiBannerGuanggao: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance._bannerAdStyle = e;
//                 this.instance.xianshiBannerGuanggao(e);
//             }
//         }
//     },
//     xianshiBannerGuanggaoZidingyi: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("显示自定义banner");
//             if (this.instance) {
//                 this.instance._bannerAdStyle = e;
//                 this.instance.xianshiBannerGuanggaoZidingyi(e);
//             }
//         }
//     },
//     xianshiBannerGuanggaoDibu: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("显示底部banner");
//             var t = e.node;
//             if (this.instance) {
//                 if (t && t.isValid) {
//                     this.instance.bannerTouchNode = t;
//                     ailin_add_touch_event(t, function () {
//                         if (window.nativeTouchCallBack) {
//                             window.nativeTouchCallBack();
//                         }
//                     });
//                 }
//                 this.instance._bannerAdStyle = {};
//                 this.instance.xianshiBannerGuanggaoDibu(e);
//             }
//         }
//     },
//     xianshiBannerGuanggaoDingbu: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         var t = e instanceof cc.Node ? e : e.node;
//         if (!this._isCloseAD) {
//             this.addBossTitle("显示顶部banner");
//             if (this.instance) {
//                 if (t && t.isValid) {
//                     this.instance.bannerTouchNode = t;
//                 }
//                 this.instance._bannerAdStyle = {
//                     y: 0
//                 };
//                 this.instance.xianshiBannerGuanggaoDingbu(e);
//             }
//         }
//     },
//     jianchaYuanshengBannerGuanggaoShifouYouxiao: function () {
//         return !!this.instance && this.instance.jianchaYuanshengBannerGuanggaoShifouYouxiao();
//     },
//     yincangBannerGuanggao: function () {
//         this.addBossTitle("隐藏banner");
//         if (this.instance) {
//             this.instance.yincangBannerGuanggao();
//             if (this.instance.moreGameBanner && this.instance.moreGameBanner.isValid) {
//                 this.instance.moreGameBanner.destroy();
//                 this.instance.moreGameBanner = null;
//             }
//         }
//     },
//     xianshiHuoYincangBannerGuanggaoMoban: function () {
//         this.addBossTitle("隐藏banner Template");
//         if (this.instance) {
//             this.instance.xianshiHuoYincangBannerGuanggaoMoban();
//         }
//     },
//     tianjiaYuanshengGuanggao: function (e, t, o) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (void 0 === t) {
//             t = 0;
//         }
//         if (void 0 === o) {
//             o = AL_AD_TYPE.OTHER;
//         }
//         if (!e) {
//             ailin_sdk_manager.showToast2("tianjiaYuanshengGuanggao 参数不对");
//         }
//         if (!e.getComponent(cc.Sprite)) {
//             e.addComponent(cc.Sprite);
//         }
//         this.addBossTitle("自定义原生广告");
//         if (this.instance && this.isInitOver()) {
//             this.instance.tianjiaYuanshengGuanggao(e, t, o);
//         }
//     },
//     yincangYuanshengGuangao: function () {
//         this.instance.yincangYuanshengGuangao();
//     },
//     zidingyiDianjiYuanshengGuanggao: function (e) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (this.instance) {
//             this.instance.zidingyiDianjiYuanshengGuanggao(e);
//         }
//     },
//     xianshiJiliShipinGuanggao: function (e, t) {
//         var o = this;
//         if (void 0 === t) {
//             t = {
//                 time: 7,
//                 node: null
//             };
//         }
//         if (0 == this._isVideo) {
//             if (e) {
//                 e(!1);
//             }
//             return al_show_log("======视频状态锁定中 ");
//         }
//         setTimeout(function () {
//             o._isVideo = !0;
//         }, 3e3);
//         this.addBossTitle("播放视频");
//         this._isVideo = !1;
//         console.log("====播放视频 ");
//         if (this.instance) {
//             console.log("====播放视频 调用了showRewardedVideoAd");
//             this.instance.xianshiJiliShipinGuanggao("", e, t);
//         }
//     },
//     xianshiJihuiShipinGuanggao: function (e) {
//         if (this.instance) {
//             this.instance.xianshiJihuiShipinGuanggao(e);
//         }
//     },
//     xianshiDuogeShipinGuanggao: function (e, t) {
//         if (void 0 === t) {
//             t = null;
//         }
//         this.addBossTitle("激励再得接口");
//         t ? this.instance && this.instance.xianshiDuogeShipinGuanggao(e, t) : console.log("===xianshiDuogeShipinGuanggao  參數不對");
//     },
//     showVideoWithoutAdIcon: function (e) {
//         this.addBossTitle("点击无广告图标按钮播放视频");
//         if (
//             ("qq" == this.platform || 0 == this.huoqu_xitong_pingtai()) &&
//             this.instance.jianli_shipin_qiehuan &&
//             this.instance.levelCount
//         ) {
//             var t = this.instance.zidong_shipin_dengji_peizhi;
//             if (!t || !t.levelInterval || !t.kaishi_putong_guanqia) {
//                 console.log("showVideoWithoutAdIcon: levelConfig配置错误: " + JSON.stringify(t));
//                 return e(!1);
//             }
//             var o = t.kaishi_putong_guanqia;
//             var i = t.levelInterval;
//             if (isNaN(o) || isNaN(i)) {
//                 console.log("showVideoWithoutAdIcon: autoVideoLevelConfig参数格式不对");
//                 return e(!1);
//             }
//             if (this.instance.levelCount < o || (this.instance.levelCount - o) % i != 0) {
//                 console.log("showVideoWithoutAdIcon： 未达到指定关卡: " + this.instance.levelCount);
//                 return e(!1);
//             }
//             this.xianshiJiliShipinGuanggao(e);
//         } else {
//             e(!1);
//         }
//     },
//     huoquShouquan: function (e) {
//         this.addBossTitle("获取渠道授权");
//         if (this.instance) {
//             this.instance.huoquShouquan(e);
//         }
//     },
//     loginEvent: null,
//     login: function () {
//         var e = this;
//         if (this.instance) {
//             this.instance.login(function () {
//                 e.instance.fasongDengluZhuizongQingqiu();
//                 if (e.loginEvent) {
//                     e.loginEvent();
//                 }
//             });
//         }
//     },
//     fenxiangDao: function (e) {
//         console.log("shareTo888");
//         if (this.instance) {
//             this.instance.fenxiangDao(e);
//         }
//     },
//     chaxunYaoqingShuju: function (e) {
//         if (this.instance) {
//             this.instance.chaxunYaoqingShuju(e);
//         }
//     },
//     huoquWxYonghuXinxi: function (e, t) {
//         if (this.instance) {
//             this.instance.huoquWxYonghuXinxi(e, t);
//         }
//     },
//     checkAddMyGame: function (e) {
//         if (this.instance) {
//             this.instance.checkAddMyGame(e);
//         }
//     },
//     tijiaoPaihangbangFenshu: function (e) {
//         if (this.instance) {
//             this.instance.tijiaoPaihangbangFenshu(e);
//         }
//     },
//     xianshiPaihangbangYemian: function (e) {
//         if (this.instance) {
//             this.instance.xianshiPaihangbangYemian(e);
//         }
//     },
//     assetsReport: function (e) {
//         if (this.instance) {
//             //this.instance.assetsReport(e);
//         }
//     },
//     huoquYouxiZidingyiCanshu: function () {
//         if (this.instance) {
//             return this.instance.huoquYouxiZidingyiCanshu();
//         }
//     },
//     shezhiJiliSpotGuanggaoHuidiao: function (e) {
//         if (this.instance) {
//             this.instance.shezhiJiliSpotGuanggaoHuidiao(e);
//         }
//     },
//     yichuJiliSpotGuanggaoHuidiao: function () {
//         if (this.instance) {
//             this.instance.yichuJiliSpotGuanggaoHuidiao();
//         }
//     },
//     share: function (e) {
//         console.log("shareTo666");
//         if (this.instance) {
//             this.instance.share(e);
//         }
//     },
//     xianshiSuoyouPaipingCeng: function (e) {
//         if (this.instance) {
//             this.instance.xianshiSuoyouPaipingCeng(e);
//         }
//     },
//     xianshiShibaiPaipingCeng: function (e) {
//         if (this.instance) {
//             this.instance.xianshiShibaiPaipingCeng(e);
//         }
//     },
//     shezhiPaihangbangShuju: function (e, t) {
//         "number" == typeof t && "string" == typeof e ?
//             this.instance && this.instance.shezhiPaihangbangShuju(e, t) :
//             ailin_sdk_manager.showToast2("提交排行榜数据参数错误");
//     },
//     xianshiLuntan: function (e) {
//         if (this.instance) {
//             this.instance.xianshiLuntan(e);
//         }
//     },
//     guanbiLuntan: function () {
//         if (this.instance) {
//             this.instance.guanbiLuntan();
//         }
//     },
//     tiaozhuanDaoQitaApp: function (e, t, o, i) {
//         if (this.instance) {
//             this.instance.tiaozhuanDaoQitaApp(e, t, o, i);
//         }
//     },
//     tiaozhuanDaoXinApp: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (this.instance) {
//             this.instance.tiaozhuanDaoXinApp(e);
//         }
//     },
//     xianshiChapingGuanggaoKaishi: function (e, t) {
//         if (void 0 === e) {
//             e = !1;
//         }
//         if (void 0 === t) {
//             t = 0;
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("插屏 开始");
//             if (this.instance) {
//                 this.instance.xianshiChapingGuanggaoKaishi(e, t);
//             }
//         }
//     },
//     xianshiChapingGuanggaoZhangting: function (e, t) {
//         if (void 0 === e) {
//             e = !1;
//         }
//         if (void 0 === t) {
//             t = 0;
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("插屏 暂停");
//             if (this.instance) {
//                 this.instance.xianshiChapingGuanggaoZhangting(e, t);
//             }
//         }
//     },
//     xianshiChapingGuanggaoQitaWeizhi: function (e) {
//         if (void 0 === e) {
//             e = AL_AD_TYPE.OTHER;
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("插屏 其它");
//             if (this.instance) {
//                 this.instance.xianshiChapingGuanggaoQitaWeizhi(e);
//             }
//         }
//     },
//     xianshiChapingGuanggaoWanchengshi: function (e, t, o, i, n) {
//         if (void 0 === e) {
//             e = !1;
//         }
//         if (void 0 === t) {
//             t = 0;
//         }
//         if (void 0 === o) {
//             o = null;
//         }
//         if (void 0 === i) {
//             i = null;
//         }
//         if (void 0 === n) {
//             n = null;
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("插屏 结束");
//             if (this.instance) {
//                 this.instance.xianshiChapingGuanggaoWanchengshi(e, t, o, i, n);
//             }
//         }
//     },
//     huoquSdkBanbenShifouKeyong: function (e) {
//         return !this.instance || this.instance.huoquSdkBanbenShifouKeyong(e);
//     },
//     setNewPlayerData: function () {
//         var e = user_default.get_int_for_key("comeGameNum", 0);
//         user_default.set_data_for_key("comeGameNum", e + 1);
//         if (user_default.get_bool_for_key(ailin.Key_NewPlayer, !0)) {
//             var t = parseInt(getTime() / 1e3);
//             user_default.set_data_for_key(ailin.Key_OncePlayerTime, t);
//             user_default.set_bool_for_key(ailin.Key_NewPlayer, !1);
//             var o = get_time_day();
//             user_default.set_data_for_key(ailin.Key_OncePlayerTimeDay, o);
//         }
//     },
//     jiexi_shuju: function (e, t) {
//         var o = e.split(",");
//         for (var i = 0; i < o.length; i++) {
//             if (o[i].split("wait:").length > 1) {
//                 if (o[i].split("wait:")[1] == t) {
//                     return !0;
//                 }
//             } else {
//                 if (o[i].split("waitL").length > 1) {
//                     var n = o[i].split("waitL")[1].split(":");
//                     var a = user_default.get_int_for_key("SDKGameMaxLevel", 0);
//                     if (n[1] == t && a > parseInt(n[0])) {
//                         return !0;
//                     }
//                 } else {
//                     if (o[i].split("waitS").length > 1) {
//                         n = o[i].split("waitS")[1].split(":");
//                         var s = user_default.get_int_for_key("SDKGameMaxScore", 0);
//                         if (n[1] == t && s > parseInt(n[0])) {
//                             return !0;
//                         }
//                     } else {
//                         if (o[i].split("waitT").length > 1) {
//                             n = o[i].split("waitT")[1].split(":");
//                             var r = user_default.get_int_for_key(ailin.Key_OncePlayerTime, 0);
//                             var c = parseInt(getTime() / 1e3);
//                             if (n[1] == t && c - r > parseInt(n[0])) {
//                                 return !0;
//                             }
//                         } else {
//                             if (o[i].split("waitE").length > 1) {
//                                 n = o[i].split("waitE")[1].split(":");
//                                 var l = user_default.get_int_for_key("comeGameNum", 0);
//                                 if (n[1] == t && l > parseInt(n[0])) {
//                                     return !0;
//                                 }
//                             } else {
//                                 if (
//                                     o[i].split("waitD").length > 1 &&
//                                     ((n = o[i].split("waitD")[1].split(":")),
//                                         (r = user_default.get_int_for_key(ailin.Key_OncePlayerTimeDay, 0)),
//                                         (c = get_time_day()),
//                                         n[1] == t && c - r > parseInt(n[0]))
//                                 ) {
//                                     return !0;
//                                 }
//                             }
//                         }
//                     }
//                 }
//             }
//         }
//         return !1;
//     },
//     gameMain: function () {
//         this.addBossTitle("主页打点");
//         if (this.instance && this.isInitOver()) {
//             this.instance.shezhiYouxiShijian("MainScene");
//             this.instance.youxiTongyongShijianChuliLogin();
//         }
//     },
//     gameEventBegin: function (e) {
//         if (void 0 === e) {
//             e = "";
//         }
//         this.addBossTitle("开始打点:" + e);
//         if (this.instance) {
//             this.instance.shezhiYouxiShijian(e, 0);
//         }
//     },
//     gameEventFinish: function (e) {
//         if (void 0 === e) {
//             e = "";
//         }
//         this.addBossTitle("结束打点:" + e);
//         if (this.instance) {
//             this.instance.shezhiYouxiShijian(e, 1);
//         }
//     },
//     gameEvent: function (e, t) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (void 0 === t) {
//             t = "";
//         }
//         var o = {
//             120001: 0,
//             120011: 0,
//             12002: 2,
//             120021: 2,
//             120022: 2,
//             120023: 2,
//             12003: 1,
//             120031: 1,
//             12004: 1,
//             120041: 1,
//             12007: 2,
//             120071: 2,
//             120072: 2,
//             120073: 2,
//             23008: 1,
//             12009: 0,
//             12010: 0,
//             12021: 1,
//             12022: 1,
//             12023: 1,
//             12024: 0,
//             12025: 0,
//             12050: 2,
//             120501: 2,
//             120502: 2,
//             120503: 2,
//             12051: 2,
//             120511: 2,
//             120512: 2,
//             12052: 2,
//             120521: 2,
//             120522: 2,
//             12053: 2,
//             120531: 2,
//             120532: 2,
//             12054: 2,
//             120541: 2,
//             120542: 2,
//             12055: 2,
//             120551: 2,
//             12056: 2,
//             120561: 2,
//             31001: 0,
//             31002: 1
//         };
//         if (this.instance) {
//             var i;
//             var n = window.event_up_mode;
//             if (null != (i = this.instance) && null != i.jianchaZaixianShujuShifouKaiqi && i.jianchaZaixianShujuShifouKaiqi("upMode")) {
//                 n = null == (n = this.instance.jianchaZaixianShujuShifouKaiqi("upMode")) ? 1 : parseInt(n);
//             }
//             if (e in o && o[e] > n) {
//                 return;
//             }
//             this.addBossTitle("计次打点:" + e);
//             console.log("gameEvent:", e, t);
//             this.instance.shezhiYouxiShijian(e);
//         }
//     },
//     shezhiZidingyiShijian: function (e, t) {
//         if (this.instance) {
//             this.instance.shezhiZidingyiShijian(e, t);
//         }
//     },
//     showModal: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             AL_Framework_al_interface.showModal(e);
//         }
//     },
//     showToast: function (e) {
//         if (void 0 === e) {
//             e = "";
//         }
//         AL_Framework_al_interface.showToast(e);
//     },
//     showToast2: function (e) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (al_show_debug) {
//             AL_Framework_al_interface.showToast(e);
//         }
//     },
//     hideToast: function () {
//         if (this.instance) {
//             this.instance.hideToast();
//         }
//     },
//     showLoading: function (e) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (this.instance) {
//             this.instance.showLoading(e);
//         }
//     },
//     hideLoading: function () {
//         if (this.instance) {
//             this.instance.hideLoading();
//         }
//     },
//     gameBeginLevel: function (e, t) {
//         if (void 0 === e) {
//             e = -1;
//         }
//         if (void 0 === t) {
//             t = "level";
//         }
//         if (this.instance) {
//             console.log("levelEvent-youxi_kaishi:", e, t);
//             ailin_sdk_manager.xianshiJihuiShipinGuanggao();
//             if ("web" == this.instance.huoquXitongPingtaiZifuchuan()) {
//                 this.instance.zidingyiYouxiShijian("level" + e + "_in");
//             }
//             var o = function (e) {
//                 return null == e || "" === e;
//             };
//             isNaN(e) || o(e) || o(t) ?
//                 ailin_sdk_manager.showToast2("游戏开始统计参数错误") :
//                 "number" == typeof e && "string" == typeof t ?
//                     (t.length > 15 && ailin_sdk_manager.showToast2("模式最长15个字符"),
//                         this.addBossTitle("开始:" + t + " " + e),
//                         al_show_log("模式   mode =====  " + t + "   游戏开始 level = " + e),
//                         this.instance && this.isInitOver() && this.instance.jinGuanqiaShijian(e, t, 0)) :
//                     ailin_sdk_manager.showToast2("游戏开始统计参数错误");
//         }
//     },
//     gameFailLevel: function (e, t) {
//         if (void 0 === e) {
//             e = -1;
//         }
//         if (void 0 === t) {
//             t = "level";
//         }
//         if (this.instance) {
//             console.log("levelEvent-youxi_shibai:", e, t);
//             if ("web" == this.instance.huoquXitongPingtaiZifuchuan()) {
//                 this.instance.zidingyiYouxiShijian("level" + e + "_fail");
//             }
//             var o = function (e) {
//                 return null == e || "" === e;
//             };
//             // isNaN(e) || o(e) || o(t) ?
//             //     ailin_sdk_manager.showToast2("游戏开始统计参数错误") :
//             //     "number" == typeof e && "string" == typeof t ?
//             //         (t.length > 15 && ailin_sdk_manager.showToast2("模式最长15个字符"),
//             //             this.addBossTitle("失败:" + t + " " + e),
//             //             al_show_log("模式   mode =====  " + t + "   游戏失败 level = " + e),
//             //             this.instance && this.isInitOver() && this.instance.jinGuanqiaShijian(e, t, 2)) :
//             //         ailin_sdk_manager.showToast2("游戏失败统计参数错误");
           
            
//         }
//     },
//     gameFinishLevel: function (e, t) {
//         if (void 0 === e) {
//             e = -1;
//         }
//         if (void 0 === t) {
//             t = "level";
//         }
//         if (this.instance) {
//             console.log("levelEvent-gameFinish:", e, t);
//             if ("web" == this.instance.huoquXitongPingtaiZifuchuan()) {
//                 this.instance.zidingyiYouxiShijian("level" + e + "_win");
//             }
//             var o = function (e) {
//                 return null == e || "" === e;
//             };
//             if (isNaN(e) || o(e) || o(t)) {
//                 ailin_sdk_manager.showToast2("游戏过关统计参数错误");
//             } else {
//                 if ("number" == typeof e && "string" == typeof t) {
//                     this.instance.gengxinYouxiDangqianGuanqiaXinxi(t, e, "过关");
//                     if (t.length > 15) {
//                         ailin_sdk_manager.showToast2("模式最长15个字符");
//                     }
//                     this.addBossTitle("过关:" + t + " " + e);
//                     al_show_log("模式   mode =====  " + t + "   游戏过关 level = " + e);
//                     if (e > user_default.get_int_for_key("SDKGameMaxLevel" + t, 0)) {
//                         user_default.set_data_for_key("SDKGameMaxLevel" + t, e);
//                     }
//                     if (this.instance && this.isInitOver()) {
//                         var i = this.instance.ascribeto;
//                         if (i.isopen && e > user_default.get_int_for_key("GY_LvCount", e - 1)) {
//                             user_default.set_data_for_key("GY_LvCount", e);
//                             if (e <= (0 == i.lvcount ? 5 : i.lvcount)) {
//                                 this.youxiTongyongShijianChuli(5e4 + e + "");
//                             }
//                         }
//                         this.instance.jinGuanqiaShijian(e, t, 1);
//                     }
//                 } else {
//                     ailin_sdk_manager.showToast2("游戏过关统计参数错误");
//                 }
//             }
//         }
//     },
//     gameScore: function (e, t) {
//         al_show_log("模式   mode =====  " + e + "   分数 score = " + t);
//         if (t > user_default.get_int_for_key("SDKGameMaxScore" + e, 0)) {
//             user_default.set_data_for_key("SDKGameMaxScore" + e, t);
//         }
//     },
//     tianjiaTishiXinxi: function (e, t, o) {
//         if (this.instance) {
//             this.instance.tianjiaTishiXinxi(e, t, o);
//         }
//     },
//     xianshiFenxiangDuihuakuang: function (e) {
//         if (this.instance) {
//             this.instance.xianshiFenxiangDuihuakuang(e);
//         }
//     },
//     tianjiaBendiKapianDuihuakuang: function (e) {
//         if (this.instance) {
//             this.instance.tianjiaBendiKapianDuihuakuang(e);
//         }
//     },
//     huoquPeizhiByZaixian: function (e, t) {
//         if (this.instance) {
//             return this.instance.huoquPeizhiByZaixian(e, t);
//         }
//     },
//     huoquZiyuanCongZaixianZiyuan: function (e, t) {
//         if (this.instance) {
//             this.instance.huoquZiyuanCongZaixianZiyuan(e, t);
//         }
//     },
//     huoquDengluShuju: function () {
//         if (this.instance) {
//             return this.instance.huoquDengluShuju();
//         }
//     },
//     xianshiCainixihuan: function (e) {
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.xianshiCainixihuan(e);
//             }
//         }
//     },
//     xianshiCainixihuan2: function (e) {
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.xianshiCainixihuan2(e);
//             }
//         }
//     },
//     fanhuizhujiemianTiaozhuanYouxi: function () {
//         if (this.instance) {
//             this.instance.fanhuizhujiemianTiaozhuanYouxi();
//         }
//     },
//     shareToCrowd: function (e, t, o, i) {
//         if (void 0 === t) {
//             t = "";
//         }
//         if (void 0 === o) {
//             o = 1;
//         }
//         if (void 0 === i) {
//             i = 1;
//         }
//         if (this.instance) {
//             this.instance.share({
//                 name: GameName,
//                 source: 5,
//                 success: function (n, a) {
//                     if (1 == n) {
//                         if (a) {
//                             var s = "ShareToCrowd" + a + i + "_" + o + t;
//                             var r = user_default.get_string_for_key(s, "0,0").split(",");
//                             var c = parseInt(r[0]);
//                             var l = parseInt(r[1]);
//                             var d = Math.floor(new Date().getTime() / 36e5);
//                             d >= l + o ? ((c = 1), (l = d)) : c++;
//                             user_default.set_data_for_key(s, c + "," + l);
//                             e(c <= i ? 1 : -1);
//                         } else {
//                             e(1);
//                         }
//                     } else {
//                         e(0);
//                     }
//                 }
//             });
//         }
//     },
//     diaoyongAnzhuoJiekou: function (e) {
//         if (this.instance) {
//             this.instance.diaoyongAnzhuoJiekou(e);
//         }
//     },
//     diaoyongAnzhuoJiekou2: function (e, t) {
//         if (this.instance) {
//             this.instance.diaoyongAnzhuoJiekou2(e, t);
//         }
//     },
//     diaoyongZhifuJiekou: function (e, t) {
//         var o = this;
//         this.addBossTitle("调用支付");
//         if (0 == this._isPay) {
//             return al_show_log("======正在支付中 ");
//         }
//         setTimeout(function () {
//             o._isPay = !0;
//         }, 3e3);
//         this._isPay = !1;
//         if (this.instance) {
//             this.instance.diaoyongZhifuJiekou(e, t);
//         }
//     },
//     shifouKaiqi: function (e) {
//         if (this.instance) {
//             return this.instance.shifouKaiqi(e);
//         }
//     },
//     getIsNative: function () {
//         return 1 == this.huoqu_xitong_pingtai();
//     },
//     fanhuiZhujiemian: function () {
//         ailin_sdk_manager.isShenhe() ?
//             ailin_sdk_manager.diaoyongAnzhuoJiekou(ACTION_EXIT_BACK) :
//             (console.log("=========================== GamesLobby"),
//                 cc.audioEngine.stopAll(),
//                 window.bundle_LY.releaseAll(),
//                 cc.assetManager.removeBundle(window.bundle_LY),
//                 (window.bundle_LY = cc.assetManager.getBundle("GameHome")),
//                 ailin_sdk_manager.setOrientation(!0),
//                 cc.director.loadScene(this._MainScene));
//     },
//     tianjiaXiaoyouxiFanhuiAnniu: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (this.instance) {
//             this.instance.tianjiaXiaoyouxiFanhuiAnniu(e);
//         }
//     },
//     tiaozhuanXiaoyouxi: function (e) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (this.instance) {
//             return this.instance.tiaozhuanXiaoyouxi(e);
//         }
//     },
//     xianshiFanhuiqianAnniu: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         e.node ?
//             (this.addBossTitle("显示返回主游戏按钮"), this.instance && this.instance.xianshiFanhuiqianAnniu(e)) :
//             ailin_sdk_manager.showToast2("xianshiYuanshengGuanggaoBig 参数不对");
//     },
//     youxiXingWeishijian: function (e) {
//         if (this.instance) {
//             return this.instance.youxiXingWeishijian(e);
//         }
//     },
//     initPhysics: function (e) {
//         var t = e;
//         cc.game.config.groupList = t["group-list"];
//         cc.game.config.collisionMatrix = t["collision-matrix"];
//         cc.game._initConfig(cc.game.config);
//     },
//     xianshiPingfen: function (e) {
//         if (this.instance) {
//             this.instance.xianshiPingfen(e);
//         }
//     },
//     xianshiYuanshengBannerGuanggao: function (e) {
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.xianshiYuanshengBannerGuanggao(e);
//             }
//         }
//     },
//     yincangYuanshengBannerGuanggao: function () {
//         if (this.instance) {
//             this.instance.yincangYuanshengBannerGuanggao();
//         }
//     },
//     xianshiHongbao: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//     },
//     xianshiHongbaoTubiao: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//     },
//     xianshi_tuijian_tubiao: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.xianshi_tuijian_tubiao(e);
//             }
//         }
//     },
//     xianshi_youxi_tuijian: function (e) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.xianshi_youxi_tuijian(e);
//             }
//         }
//     },
//     showGameRecommendDialog: function () { },
//     huoquFenxiangHuoShipinZhuangtai: function () {
//         return this.instance ? this.instance.huoquFenxiangHuoShipinZhuangtai() : 0;
//     },
//     zhixingFenxiangHuoShipinLuoji: function (e) {
//         return this.instance ? this.instance.zhixingFenxiangHuoShipinLuoji(e) : 0;
//     },
//     huoquTiaozhuanAnniuShifouYidong: function () {
//         return this.instance ? this.instance.huoquTiaozhuanAnniuShifouYidong() : 0;
//     },
//     xianshiCainixihuan3: function (e) {
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.xianshiCainixihuan3(e);
//             }
//         }
//     },
//     shuaxinBannerGuanggao: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (this.instance) {
//             this.instance.shuaxinBannerGuanggao(e);
//         }
//     },
//     huoquJibenShuju: function () {
//         if (this.instance) {
//             this.instance.huoquJibenShuju();
//         }
//         return {};
//     },
//     reload: function () {
//         if (this.instance) {
//             this.instance.reload();
//         }
//     },
//     xianshiFenxiangShipinDuihuakuang: function (e) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (this.instance) {
//             this.instance.xianshiFenxiangShipinDuihuakuang(e);
//         }
//     },
//     xianshiTianjiaDaoShoucangjiaDuihuaKuang: function (e) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (this.instance) {
//             this.instance.xianshiTianjiaDaoShoucangjiaDuihuaKuang(e);
//         }
//     },
//     tianjiaLupingAnniu: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (this.instance) {
//             this.instance.tianjiaLupingAnniu(e);
//         }
//     },
//     fenxiangShipin: function (e) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (this.instance) {
//             this.instance.fenxiangShipin(e);
//         }
//     },
//     kaishiLuping: function (e, t) {
//         if (void 0 === e) {
//             e = 300;
//         }
//         if (void 0 === t) {
//             t = null;
//         }
//         if (this.instance) {
//             this.instance.kaishiLuping(e, t);
//         }
//     },
//     zantingLuping: function () {
//         if (this.instance) {
//             this.instance.zantingLuping();
//         }
//     },
//     resumeLuPing: function () {
//         if (this.instance) {
//             this.instance.resumeLuPing();
//         }
//     },
//     tingzhiLuping: function (e) {
//         if (void 0 === e) {
//             e = !0;
//         }
//         if (this.instance) {
//             this.instance.tingzhiLuping(e);
//         }
//     },
//     shefou_yi_anzhuang: function (e) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (this.instance) {
//             this.instance.shefou_yi_anzhuang(e);
//         }
//     },
//     install: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (this.instance) {
//             this.instance.install(e);
//         }
//     },
//     xianshiTuijianGuanggaoKaishi: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         this._isCloseAD ?
//             e.callBack && e.callBack() :
//             this.instance ?
//                 this.instance.xianshiTuijianGuanggaoKaishi(e) :
//                 e.callBack && e.callBack();
//     },
//     xianshiTuijianGuanggaoWancheng: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         this._isCloseAD ?
//             e.callBack && e.callBack() :
//             this.instance ?
//                 this.instance.xianshiTuijianGuanggaoWancheng(e) :
//                 e.callBack && e.callBack();
//     },
//     xianshiJiangliJInbiGezi: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         this._isCloseAD ?
//             e.callBack && e.callBack() :
//             this.instance ?
//                 this.instance.xianshiJiangliJInbiGezi(e) :
//                 e.callBack && e.callBack();
//     },
//     xianshiJiangliJInbiTiaoxing: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         this._isCloseAD ?
//             e.callBack && e.callBack() :
//             this.instance ?
//                 this.instance.xianshiJiangliJInbiTiaoxing(e) :
//                 e.callBack && e.callBack();
//     },
//     anzhuangKuaijieFangShi: function (e) {
//         this.addBossTitle("添加到桌面");
//         if (this.instance && this.isInitOver()) {
//             this.instance.anzhuangKuaijieFangShi(e);
//         }
//     },
//     tianjiaChangyongGongneng: function (e) {
//         this.addBossTitle("添加到常用列表");
//         if (this.instance && this.isInitOver()) {
//             this.instance.tianjiaChangyongGongneng(e);
//         }
//     },
//     tianjiaAnzhuangKuaijieFangshi: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         this.addBossTitle("添加到桌面按钮");
//         if (this.instance && this.isInitOver()) {
//             this.instance.tianjiaAnzhuangKuaijieFangshi(e);
//         }
//     },
//     xianshiAnzhuangKuaijieFangshiDuihuakuang: function (e) {
//         this.addBossTitle("添加到桌面对话框");
//         if (this.instance) {
//             this.instance.xianshiAnzhuangKuaijieFangshiDuihuakuang(e);
//         }
//     },
//     xianshiTuijianJiangliTubiao: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (this.instance) {
//             this.instance.xianshiTuijianJiangliTubiao(e);
//         }
//     },
//     shezhiHttpGetShuju: function (e, t) {
//         if (this.instance) {
//             this.instance.shezhiHttpGetShuju(e, t);
//         }
//     },
//     xianshiGengduoYouxiTubiao: function (e, t) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (void 0 === t) {
//             t = "";
//         }
//         if (!this._isCloseAD) {
//             t = "加强";
//             this.addBossTitle(t + "互推 icon", "" == t ? cc.Color.WHITE : cc.Color.RED);
//             al_show_log("xianshiGengduoYouxiTubiao: " + this.isInitOver() + "; " + this.issOpenStrengthenMode());
//             if (this.instance && this.isInitOver() && this.issOpenStrengthenMode()) {
//                 this.instance.xianshiGengduoYouxiTubiao(e);
//             }
//         }
//     },
//     xianshiGengDuoYouxiTubiao: function () {
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.xianshiGengDuoYouxiTubiao();
//             }
//         }
//     },
//     yincangGengduoYouxiTubiao: function () {
//         if (this.instance) {
//             this.instance.yincangGengduoYouxiTubiao();
//         }
//     },
//     xianshiGengduoYouxiByBanner: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("互推 banner");
//             if (this.instance && this.isInitOver()) {
//                 this.instance.xianshiGengduoYouxiByBanner(e);
//             }
//         }
//     },
//     xianshiGengDuoYouxiAnniu: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("互推 更多游戏");
//             if (this.instance && this.isInitOver()) {
//                 this.instance.xianshiGengDuoYouxiAnniu(e);
//             }
//         }
//     },
//     xianshiGengDuoYouxiCebian: function (e, t) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (void 0 === t) {
//             t = "";
//         }
//         if (!this._isCloseAD) {
//             t = "加强";
//             this.addBossTitle(t + "互推 侧边栏", "" == t ? cc.Color.WHITE : cc.Color.RED);
//             if (this.instance && this.isInitOver()) {
//                 this.instance.xianshiGengDuoYouxiCebian(e);
//             }
//         }
//     },
//     xianshiGengDuoYouxiZhongjian_one: function (e, t) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (void 0 === t) {
//             t = "";
//         }
//         if (!this._isCloseAD) {
//             return e.node ?
//                 (this.addBossTitle(t + "互推 一行 高度183", "" == t ? cc.Color.WHITE : cc.Color.RED), !(!this.instance || !this.isInitOver()) && this.instance.xianshiGengDuoYouxiZhongjian_one(e)) :
//                 (ailin_sdk_manager.showToast2("xianshiGengDuoYouxiZhongjian_one 参数不对"), !1);
//         }
//     },
//     xianshiGengDuoYouxiZhongjian_two: function (e, t) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (void 0 === t) {
//             t = "";
//         }
//         if (!this._isCloseAD) {
//             if (null == e.scale) {
//                 e.scale = this._SceneScale;
//             }
//             this.addBossTitle(t + "互推 两行 高度500", "" == t ? cc.Color.WHITE : cc.Color.RED);
//             return !(!this.instance || !this.isInitOver()) && this.instance.xianshiGengDuoYouxiZhongjian_two(e);
//         }
//     },
//     xianshiGengDuoYouxiZhongjian_three: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return e.node ?
//                 (null == e.scale && (e.scale = this._SceneScale),
//                     this.addBossTitle("互推 三行 高度500"), !(!this.instance || !this.isInitOver()) && this.instance.xianshiGengDuoYouxiZhongjian_three(e)) :
//                 (ailin_sdk_manager.showToast2("xianshiGengDuoYouxiZhongjian_three 参数不对"), !1);
//         }
//     },
//     showBlockAd: function (e) {
//         if (!this._isCloseAD) {
//             this.addBossTitle("自定义qq积木广告");
//             if ("qq" == this.platform) {
//                 this.instance.showBlockAd(e);
//             }
//         }
//     },
//     shezhiGuanggaoZhuizong: function (e, t, o) {
//         if (this.instance) {
//             this.instance.shezhiGuanggaoZhuizong(e, t, o);
//         }
//     },
//     shezhiCaozuoZhuizong: function (e) {
//         if (this.instance) {
//             this.instance.shezhiCaozuoZhuizong(e);
//         }
//     },
//     xianshi_yingyong_hezi: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle("显示盒子广告qq");
//             e.node ? this.instance && this.instance.xianshi_yingyong_hezi(e) : ailin_sdk_manager.showToast2("xianshi_yingyong_hezi 参数不对");
//         }
//     },
//     genjuKeyHuoquCanshu: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (e.key) {
//             return this.instance ? this.instance.genjuKeyHuoquCanshu(e) : e.defaultValue ? e.defaultValue : void 0;
//         }
//         ailin_sdk_manager.showToast2("genjuKeyHuoquCanshu 参数不对");
//     },
//     xianshiYuanshengGuanggaoSmall: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return e.node && e.bgPath ?
//                 (null == e.scale && (e.scale = this._SceneScale),
//                     this.addBossTitle("显示原生广告小 600*150"),
//                     this.instance && this.isInitOver() ? this.instance.xianshiYuanshengGuanggaoSmall(e) : void 0) :
//                 (ailin_sdk_manager.showToast2("xianshiYuanshengGuanggaoSmall 参数不对"), !1);
//         }
//     },
//     xianshiYuanshengGuanggaoBig: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return e.node && e.bgPath ?
//                 (null == e.scale && (e.scale = this._SceneScale),
//                     this.addBossTitle("显示原生广告大 600*410"),
//                     this.instance && this.isInitOver() ? this.instance.xianshiYuanshengGuanggaoBig(e) : void 0) :
//                 (ailin_sdk_manager.showToast2("xianshiYuanshengGuanggaoBig 参数不对"), !1);
//         }
//     },
//     guanbiHeziBannerGuanggao: function () {
//         if (this.instance) {
//             return this.instance.guanbiHeziBannerGuanggao();
//         }
//     },
//     guanbiHeziRukouGuanggao: function () {
//         if (this.instance) {
//             return this.instance.guanbiHeziRukouGuanggao();
//         }
//     },
//     xianshiYuanshengGuanggaoLoad: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return this.instance ? this.instance.xianshiYuanshengGuanggaoLoad(e) : void 0;
//         }
//     },
//     yincangGengDuoYouxiCebian: function () {
//         this.addBossTitle("隐藏侧边栏");
//         if (this.instance && this.isInitOver()) {
//             return this.instance.yincangGengDuoYouxiCebian();
//         }
//     },
//     huoquJietuJiedian: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (this.instance) {
//             return this.instance.huoquJietuJiedian();
//         }
//     },
//     baocunTupianDaoXiangce: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         e.node ?
//             this.instance && this.instance.baocunTupianDaoXiangce(e) :
//             ailin_sdk_manager.showToast2("baocunTupianDaoXiangce 参数不对");
//     },
//     addListenerBackKey: function (e) {
//         // var t = this;
//         // if (void 0 === e) {
//         //     e = {};
//         // }
//         // e.node ?
//         //     cc.eventManager.addListener({
//         //             event: cc.EventListener.KEYBOARD,
//         //             onKeyPressed: function(o, i) {
//         //                 i.stopPropagation();
//         //                 switch (o) {
//         //                     case cc.macro.KEY.back:
//         //                     case 27:
//         //                         if (e.callBack) {
//         //                             e.callBack();
//         //                         } else {
//         //                             if ("" == lieyou_SmallGamePath2) {
//         //                                 ailin_sdk_manager.diaoyongAnzhuoJiekou(ACTION_EXIT_BACK);
//         //                             } else {
//         //                                 try {
//         //                                     t.instance.tiaozhuanXiaoyouxi("");
//         //                                 } catch (e) {}
//         //                             }
//         //                         }
//         //                 }
//         //             }
//         //         },
//         //         e.node
//         //     ) :
//         //     ailin_sdk_manager.showToast2("addListenerBackKey 参数不对");


//         var t = this;
//         void 0 === e && (e = {});
//         if (e.node) {
//             // 处理触摸开始事件
//             cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, function (event) {
//                 switch (event.keyCode) {
//                     case cc.macro.KEY.back:
//                     case 27:
//                         if (e.callBack) {
//                             e.callBack();
//                         } else {
//                             if ("" == lieyou_SmallGamePath2) {
//                                 ailin_sdk_manager.diaoyongAnzhuoJiekou(ACTION_EXIT_BACK);
//                             } else {
//                                 try {
//                                     t.instance.tiaozhuanXiaoyouxi("");
//                                 } catch (e) { }
//                             }
//                         }
//                 }
//             }, e.node)
//         } else {
//             al_sdk_manager.showToast2("addListenerBackKey 参数不对");
//         }

//     },
//     xianshiISBN: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         this.addBossTitle("显示版号软著信息");
//         if (this.instance && this.isInitOver()) {
//             this.instance.xianshiISBN(e);
//         }
//     },
//     yincangISBN: function () {
//         if (this.instance) {
//             this.instance.yincangISBN();
//         }
//     },
//     xianshiYonghuXieyi: function (e) {
//         this.addBossTitle("显示用户协议图片");
//         this.instance.xianshiYonghuXieyi(e);
//     },
//     showUserAgreement: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         this.addBossTitle("显示用户协议");
//         this.instance.showUserAgreement(e);
//     },
//     xianshiGengduoYouxiWangGe: function () {
//         if (!this._isCloseAD) {
//             this.addBossTitle("插屏互推");
//             if (this.instance && this.isInitOver()) {
//                 this.instance.xianshiGengduoYouxiWangGe();
//             }
//         }
//     },
//     tianjiaHongbaoTubiao: function (e) {
//         if (!this._isCloseAD) {
//             if (!e.node) {
//                 ailin_sdk_manager.showToast2("tianjiaHongbaoTubiao 参数不对");
//             }
//             if (this.instance && this.isInitOver()) {
//                 this.instance.tianjiaHongbaoTubiao(e);
//             }
//         }
//     },
//     tianjiaHongbaoDuihuakuang: function () {
//         if (!this._isCloseAD) {
//             if (this.instance && this.isInitOver()) {
//                 this.instance.tianjiaHongbaoDuihuakuang();
//             }
//         }
//     },
//     tianjiaQuchuTubiao: function (e) {
//         if (!this._isCloseAD) {
//             if (!e.node) {
//                 ailin_sdk_manager.showToast2("tianjiaHongbaoTubiao 参数不对");
//             }
//             if (this.instance && this.isInitOver()) {
//                 this.instance.tianjiaQuchuTubiao(e);
//             }
//         }
//     },
//     youxiDengLu: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (this.instance) {
//             this.instance.youxiDengLu(e);
//         }
//     },
//     xianshiYuanshengGuanggao1: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return e.node ?
//                 (null == e.scale && (e.scale = this._SceneScale),
//                     this.addBossTitle("显示原生广告1"),
//                     this.instance ? this.instance.xianshiYuanshengGuanggao1(e) : void 0) :
//                 (ailin_sdk_manager.showToast2("原生广告1 参数不对"), !1);
//         }
//     },
//     xianshiYuanshengGuanggao2: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             if (!(e.node && e.bgPath && e.clickNode && e.destroyCallBack)) {
//                 ailin_sdk_manager.showToast2("原生广告2 参数不对");
//                 return !1;
//             }
//             if (Array.isArray(e.clickNode)) { } else {
//                 {
//                     var t = e.clickNode;
//                     e.clickNode = [t];
//                 }
//             }
//             if (null == e.scale) {
//                 e.scale = this._SceneScale;
//             }
//             this.addBossTitle("显示原生广告2");
//             return this.instance && this.isInitOver() ? this.instance.xianshiYuanshengGuanggao2(e) : void 0;
//         }
//     },
//     huoquYuanshengGuanggaoShuju: function () {
//         this.addBossTitle("获取原生广告源数据");
//         return this.instance ? this.instance.huoquYuanshengGuanggaoShuju() : null;
//     },
//     getNativeAdDataBig: function () {
//         this.addBossTitle("获取原生广告源数据big");
//         return null;
//     },
//     xianshiYuanshengGuanggao3: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return e.destroyCallBack ?
//                 (this.addBossTitle("显示原生广告3"), !!this.instance && this.instance.xianshiYuanshengGuanggao3(e)) :
//                 (ailin_sdk_manager.showToast2("原生广告3 参数不对"), !1);
//         }
//     },
//     xianshiYuanshengGuanggao4: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return e.node && e.icon_Node ?
//                 (this.addBossTitle("显示原生广告4"),
//                     this.instance ? this.instance.xianshiYuanshengGuanggao4(e) : (e.xiaohui_huidiao && e.xiaohui_huidiao(), !1)) :
//                 (ailin_sdk_manager.showToast2("原生广告4 参数不对"), !1);
//         }
//     },
//     compileStr: function (e) {
//         var t = String.fromCharCode(e.charCodeAt(0) + e.length);
//         for (var o = 1; o < e.length; o++) {
//             t += String.fromCharCode(e.charCodeAt(o) + e.charCodeAt(o - 1));
//         }
//         return escape(t);
//     },
//     uncompileStr: function (e) {
//         e = unescape(e);
//         var t = String.fromCharCode(e.charCodeAt(0) - e.length);
//         for (var o = 1; o < e.length; o++) {
//             t += String.fromCharCode(e.charCodeAt(o) - t.charCodeAt(o - 1));
//         }
//         return t;
//     },
//     guanggaoZhuizongQingqiu: function (e, t, o, i) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (void 0 === t) {
//             t = "";
//         }
//         if (void 0 === o) {
//             o = "";
//         }
//         if (void 0 === i) {
//             i = 0;
//         }
//         if (this.instance) {
//             this.instance.guanggaoZhuizongQingqiu(e, t, o, i);
//         }
//     },
//     zidingyiYouxiShijian: function (e) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (this.instance) {
//             this.instance.zidingyiYouxiShijian(e);
//         }
//     },
//     shezhiChangjingMingcheng: function (e) {
//         if (void 0 === e) {
//             e = "MainScene";
//         }
//         this.addBossTitle("进入场景" + e);
//         if (this.instance) {
//             this.instance.shezhiChangjingMingcheng(e);
//         }
//     },
//     xianshiYouxiMenhuGuanggao: function () {
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.chuangjianYouxiMenhuGuanggao();
//             }
//         }
//     },
//     addNativeAd_strengthen: function (e) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (!this._isCloseAD) {
//             this.issOpenStrengthenMode() ?
//                 this.tianjiaYuanshengGuanggao(e, "加强") :
//                 this.addBossTitle("加强 原生icon", cc.Color.RED);
//         }
//     },
//     showMoreGameByIcon_strengthen: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             this.issOpenStrengthenMode() ?
//                 this.xianshiGengduoYouxiTubiao(e, "加强") :
//                 this.addBossTitle("加强 互推icon", cc.Color.RED);
//         }
//     },
//     showMoreGameSide_strengthen: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             this.issOpenStrengthenMode() ?
//                 this.xianshiGengDuoYouxiCebian(e, "加强") :
//                 this.addBossTitle("加强 互推侧边栏", cc.Color.RED);
//         }
//     },
//     showMoreGameMiddle_two_strengthen: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return this.issOpenStrengthenMode() ?
//                 this.xianshiGengDuoYouxiZhongjian_two(e, "加强") :
//                 (this.addBossTitle("加强 两行互推", cc.Color.RED), !1);
//         }
//     },
//     showMoreGameMiddle_one_strengthen: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             return this.issOpenStrengthenMode() ?
//                 this.xianshiGengDuoYouxiZhongjian_one(e, "加强") :
//                 (this.addBossTitle("加强 一行互推", cc.Color.RED), !1);
//         }
//     },
//     showGameMidActivity: function (e) {
//         if (this._isCloseAD) {
//             if (e.handle_button_callback) {
//                 e.handle_button_callback();
//             }
//             return void (e.xiaohui_huidiao && e.xiaohui_huidiao());
//         }
//         this.instance.dangqian_duihuakuang_qiehuan ?
//             (this.addBossTitle("wx展示游戏中间互推界面"),
//                 (e.dianji_cishu = this.instance.xianshi_wx_banner_dianji_cishu),
//                 o.default.xianshiYouxiZhongjianDuihuaKuang(e)) :
//             (e.handle_button_callback && e.handle_button_callback(), e.xiaohui_huidiao && e.xiaohui_huidiao());
//     },
//     showRoundMidActivity: function (e) {
//         if (this._isCloseAD) {
//             if (e.handle_button_callback) {
//                 e.handle_button_callback();
//             }
//             return void (e.xiaohui_huidiao && e.xiaohui_huidiao());
//         }
//         this.instance.dangqian_duihuakuang_qiehuan ?
//             (this.addBossTitle("wx展示回合结束互推界面"),
//                 (e.dianji_cishu = this.instance.xianshi_wx_banner_dianji_cishu),
//                 i.default.show_Round_Middle_Dialog(e)) :
//             (e.handle_button_callback && e.handle_button_callback(), e.xiaohui_huidiao && e.xiaohui_huidiao());
//     },
//     xianshiChestDuihuakuang: function (e, t) {
//         if (void 0 === e) {
//             e = null;
//         }
//         if (void 0 === t) {
//             t = null;
//         }
//         if (this._isCloseAD) {
//             if (e) {
//                 e();
//             }
//             return void (t && t());
//         }
//         console.log("SDKManager: xianshiChestDuihuakuang: dangqian_duihuakuang_qiehuan: " + this.instance.dangqian_duihuakuang_qiehuan);
//         if (this.instance.dangqian_duihuakuang_qiehuan) {
//             this.addBossTitle("展示宝箱弹窗");
//             var o = {};
//             o.kuaisu_dianji_cishu = this.instance.wx_chest_dianji_cishu;
//             o.clickLimit = this.instance.wx_chest_dianji_limit;
//             o.handle_button_callback = e;
//             o.xiaohui_huidiao = t;
//             o.wx_kuaisu_dianji_jiange = this.instance.wx_kuaisu_dianji_jiange;
//             n.default.xianshiChestDuihuakuang(o);
//         } else {
//             e && e();
//             t && t();
//         }
//     },
//     showGameRankActivity: function (e) {
//         this.instance.wx_youxi_panhangbang_qihuan ?
//             (this.addBossTitle("wx排行榜互推界面"), a.default.showGameRankActivity(e)) :
//             (e.handle_button_callback && e.handle_button_callback(), e.xiaohui_huidiao && e.xiaohui_huidiao());
//     },
//     isInitOver: function () {
//         return !!this.initOver || (this.showToast2("初始化未完成"), !1);
//     },
//     issOpenStrengthenMode: function () {
//         al_show_log("issOpenStrengthenMode: " + this.strengthenMode);
//         return !(!this.isInitOver() ||
//             (2 != this.strengthenMode && (1 != this.strengthenMode || this.instance.xiangmu_ceshi_kaiguan))
//         );
//     },
//     huoquYuanshengXitongXiangguanXinxi: function () {
//         return this.instance ? this.instance.huoquYuanshengXitongXiangguanXinxi() : "";
//     },
//     xiaoxiJiancha: function (e, t) {
//         console.log("msg: " + e);
//         if (this.instance) {
//             return this.instance.xiaoxiJiancha(e, t);
//         }
//     },
//     chuangjianYouxiLuanboGuanggao: function (e, t) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (void 0 === t) {
//             t = "";
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle(t + "轮播互推盒子", "" == t ? cc.Color.WHITE : cc.Color.RED);
//             if (this.instance) {
//                 this.instance.chuangjianYouxiLuanboGuanggao(e);
//             }
//         }
//     },
//     chuangjianYouxiCebianlanGuanggao: function (e) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (!this._isCloseAD) {
//             this.addBossTitle(e + "抽屉互推盒子", "" == e ? cc.Color.WHITE : cc.Color.RED);
//             if (this.instance) {
//                 this.instance.chuangjianYouxiCebianlanGuanggao();
//             }
//         }
//     },
//     createGameCarousel_Strengthen: function (e) {
//         if (void 0 === e) {
//             e = {};
//         }
//         if (!this._isCloseAD) {
//             if (this.issOpenStrengthenMode()) {
//                 this.chuangjianYouxiLuanboGuanggao(e, "加强");
//             }
//         }
//     },
//     createGameDrawerl_Strengthen: function () {
//         if (!this._isCloseAD) {
//             if (this.issOpenStrengthenMode()) {
//                 this.chuangjianYouxiCebianlanGuanggao("加强");
//             }
//         }
//     },
//     yincangYouxiCebianlanGuanggao: function () {
//         if (this.instance) {
//             this.instance.yincangYouxiCebianlanGuanggao();
//         }
//     },
//     newNativeCustomAd: function (e) {
//         if (!this._isCloseAD) {
//             var t = cc.winSize;
//             al_show_log("newNativeCustomAd: ", e, t);
//             var o = (e.width * e.anchorX) / t.width;
//             var i = (e.height * e.scaleY) / t.height;
//             var n = e.convertToWorldSpaceAR(e.position);
//             var a = n.x - e.width * e.anchorX * e.scaleX;
//             var s = t.height - (n.y + e.height * (1 - e.anchorY) * e.scaleY);
//             this.yuanshengZidingyiGuanggao(o, i, a, s);
//         }
//     },
//     yuanshengZidingyiGuanggao: function (e, t, o, i) {
//         if (!this._isCloseAD) {
//             if (this.instance) {
//                 this.instance.yuanshengZidingyiGuanggao(e, t, o, i);
//             }
//         }
//     },
//     yincangYuanshengJsShitu: function () {
//         if (this.instance) {
//             this.instance.yincangYuanshengJsShitu();
//         }
//     },
//     setNativeClick: function () {
//         if (window.nativeTouchCallBack) {
//             window.nativeTouchCallBack();
//         }
//     },
//     shifouYouYuanshengGuanggaoXianshi: function () {
//         if (this.instance) {
//             return this.instance.shifouYouYuanshengGuanggaoXianshi();
//         }
//     },
//     shezhiWuguanggaoMoshi: function () {
//         if (this.instance) {
//             return this.instance.shezhiWuguanggaoMoshi();
//         }
//     },
//     level: 1,
//     mode: 1,
//     onGameStart: function (e, t, o) {
//         this.mode = e;
//         this.level = t;
//         if (window.onGameStart) {
//             window.onGameStart(e, t, o);
//         }
//         this.gameBeginLevel(t, "模式" + e);
//     },
//     onGameSuccess: function (e, t, o) {
//         this.mode = e;
//         this.level = t;
//         if (window.onGameSuccess) {
//             window.onGameSuccess(e, t, o);
//         }
//         this.gameFinishLevel(t, "模式" + e);
//         this.instance.zidingyiYouxiShijian("level" + t + "_win");
//     },
//     chuli_youxi_shibai: function (e, t, o) {
//         this.mode = e;
//         this.level = t;
//         if (window.chuli_youxi_shibai) {
//             window.chuli_youxi_shibai(e, t, o);
//         }
//         console.log("我是谁11");
//         this.gameFailLevel(t, "模式" + e);
//         console.log("我是谁22");
//         this.instance.zidingyiYouxiShijian("level" + t + "_fail");
//         console.log("我是谁33");
//     },
//     shifouZhifuGoumai: function () {
//         return user_default.get_bool_for_key(KEY_IS_OPENPAY, !0);
//     },
//     xianshiShilingTishi: function (e) {
//         // if (void 0 === e) {
//         //     e = {};
//         // }
//         // this.addBossTitle("显示适合年龄");
//         // this.instance && e && e.node ? this.instance.xianshiShilingTishi(e) : this.showToast2(" xianshiShilingTishi 参数错误！");
//     },
//     xianshiMobanGuanggao: function () {
//         if (!this._isCloseAD) {
//             this.addBossTitle("显示模板广告");
//             if (this.instance && this.isInitOver()) {
//                 this.instance.xianshiMobanGuanggao();
//             }
//         }
//     },
//     xianshiXiangji: function (e) {
//         this.instance.xianshiXiangji(e);
//     },
//     dakaiXiangce: function (e) {
//         this.instance.dakaiXiangce(e);
//     },
//     savePhotoAlbum: function (e, t) {
//         this.instance.savePhotoAlbum(e, t);
//     },
//     readFile: function (e) {
//         this.instance.readFile(e);
//     },
//     duquTuxiangWenjian: function (e) {
//         this.instance.duquTuxiangWenjian(e);
//     },
//     bufferConvertTexture2D: function (e, t) {
//         var o = new Uint8Array(e);
//         var i = o.length;
//         for (var n = new Array(i); i--;) {
//             n[i] = String.fromCharCode(o[i]);
//         }
//         var a = n.join("");
//         console.log("------------binaryString " + a);
//         var s = window.btoa(a);
//         var r = new Image();
//         r.src = "data:image/jpg;base64," + s;
//         var c = new cc.Texture2D();
//         c.initWithElement(r, cc.Texture2D.PixelFormat.RGBA8888);
//         r.onload = function () {
//             console.log("ailin oppo ++++++++++++binaryString width=" + r.width + "   height=" + r.height);
//             if (t) {
//                 t(c);
//             }
//         };
//     },
//     renlianShibie: function (e, t) {
//         this.instance.renlianShibie(e, t);
//     },
//     showMoreGamePanl: function (e) {
//         0 != ailin_sdk_manager.huoqu_xitong_pingtai() || ailin_sdk_manager.isShenhe() ?
//             e.callfun && e.callfun() :
//             AL_Framework_al_interface.xianshi_weixin_juzhen(e.callfun, e.isWin);
//     },
//     showGameOverPanl: function (e) {
//         0 != ailin_sdk_manager.huoqu_xitong_pingtai() || ailin_sdk_manager.isShenhe() ?
//             e.callfun && e.callfun() :
//             AL_Framework_al_interface.xianshi_weixin_juzhen(e.callfun, e.isWin);
//     },
//     setOrientation: function (e) {
//         if (void 0 === e) {
//             e = !0;
//         }
//         if (this.instance) {
//             this.instance.setOrientation(e);
//         }
//     },
//     closeAD: function (e) {
//         if (void 0 === e) {
//             e = {
//                 type: AL_CLOSE_TYPE.ONEDAY
//             };
//         }
//         this._isCloseAD = !0;
//         this.instance.diaoyongAnzhuoJiekou(1405);
//         var t = user_default.get_string_for_key("lieyou_closeAD_dateDay", "");
//         if ("" == t || new Date(Date.parse(t)).getTime() < new Date(Date.parse(this._currDate)).getTime()) {
//             t = this._currDate;
//         }
//         console.log("======closeAD========= datatime:", t);
//         var o = new Date(Date.parse(t));
//         e.type == AL_CLOSE_TYPE.ONEWEEK ?
//             o.setDate(o.getDate() + 7) :
//             e.type == AL_CLOSE_TYPE.January ?
//                 o.setMonth(o.getMonth() + 1) :
//                 e.type == AL_CLOSE_TYPE.lasting ?
//                     o.setFullYear(o.getFullYear() + 1e3) :
//                     o.setDate(o.getDate() + 1);
//         user_default.set_data_for_key("lieyou_closeAD_dateDay", get_time_day_str(o.getTime()));
//         console.log("======closeAD========= lieyou_closeAD_dateDay:", get_time_day_str(o.getTime()));
//         if (this.instance.jichu_zhongjian_jiedian) {
//             this.instance.jichu_zhongjian_jiedian.parent = null;
//         }
//         ailin_sdk_manager.yincangYuanshengBannerGuanggao();
//         ailin_sdk_manager.yincangBannerGuanggao();
//         ailin_sdk_manager.yincangGengDuoYouxiCebian();
//         ailin_sdk_manager.yincangYuanshengGuangao();
//     },
//     getCloseAdDay: function () {
//         var e = user_default.get_string_for_key("lieyou_closeAD_dateDay", "");
//         if ("" == e) {
//             this._isCloseAD = !1;
//             this.instance.diaoyongAnzhuoJiekou(1406);
//             return 0;
//         }
//         var t = new Date(Date.parse(e)).getTime();
//         var o = new Date(Date.parse(this._currDate)).getTime();
//         if (t < o) {
//             user_default.set_data_for_key("lieyou_closeAD_dateDay", "");
//             this._isCloseAD = !1;
//             this.instance.diaoyongAnzhuoJiekou(1406);
//             return 0;
//         }
//         this.instance.diaoyongAnzhuoJiekou(1405);
//         this._isCloseAD = !0;
//         var i = Math.floor(t / 1e3 / 3600 / 24 - o / 1e3 / 3600 / 24);
//         return i / 365 > 100 ? -1 : i;
//     },
//     qidongShezhi: function () {
//         this.instance.qidongShezhi();
//     },
//     getTime: function () {
//         return ailin_sdk_manager.instance.huoquDangqianShijianchuo();
//     },
//     guanbiDingdan: function (e) {
//         this.instance.guanbiDingdan(e);
//     },
//     fafangDingdan: function (e, t) {
//         if (void 0 === t) {
//             t = AL_Order_Status.give;
//         }
//         this.instance.fafangDingdan(e, t);
//     },
//     jiancha_dingdan: function (e) {
//         if (void 0 === e) {
//             e = !0;
//         }
//         this.instance.jiancha_dingdan(e);
//     },
//     checkIPAddr: function (e) {
//         // var t = "https://aa.flowerme.com/api/other/getAddr";
//         // try {
//         //     var o = new XMLHttpRequest();
//         //     o.onreadystatechange = function() {
//         //         if (4 == o.readyState && o.status >= 200 && o.status < 400) {
//         //             var t = o.responseText;
//         //             console.log("-------onreadystatechange ", o);
//         //             if ("-1" == t) {} else {
//         //                 if ("-2" == t) {} else {
//         //                     {
//         //                         var i = JSON.parse(t).data;
//         //                         console.log("======shezhiZhifuShujuDaoFuwuqi==== ", t);
//         //                         if (e) {
//         //                             e(i);
//         //                         }
//         //                     }
//         //                 }
//         //             }
//         //         }
//         //     };
//         //     o.open("GET", t, !0);
//         //     o.timeout = 5e3;
//         //     o.send();
//         //     o.ontimeout = function() {
//         //         o.abort();
//         //         console.log("网络超时，断开连接 request timeout :  ", t);
//         //     };
//         //     o.onerror = function() {
//         //         console.log("request error : ", t);
//         //     };
//         // } catch (e) {
//         //     console.log("网络异常 ", e);
//         // }
//     },
//     youxiTongyongShijianChuli: function (e) {
//         al_show_log("归因回传 id: " + e);
//         "juliang" == user_default.get_string_for_key("huichuan", "") ?
//             this.instance.youxiTongyongShijianChuli({
//                 eventCode: e
//             }) :
//             "gdt" == user_default.get_string_for_key("huichuan", "") ?
//                 this.instance.youxiTongyongShijianChuli2({
//                     eventCode: e
//                 }) :
//                 "oppo" == user_default.get_string_for_key("huichuan", "") &&
//                 this.youxiTongyongShijianChuli3({
//                     eventCode: 6e4 + num + ""
//                 });
//     },
//     gameCommonEventsNew: function (e) {
//         al_show_log("归因回传 id: " + e.eventCode);
//         "juliang" == user_default.get_string_for_key("huichuan", "") ?
//             this.instance.youxiTongyongShijianChuli(e) :
//             "gdt" == user_default.get_string_for_key("huichuan", "") ?
//                 this.instance.youxiTongyongShijianChuli2(e) :
//                 "oppo" == user_default.get_string_for_key("huichuan", "") &&
//                 this.youxiTongyongShijianChuli3({
//                     eventCode: 6e4 + num + ""
//                 });
//     },
//     huoquFuwuqiShijian: function (e) {
//         // this.instance.huoquFuwuqiShijian(e);
//     },
//     beifenYouxiShuju: function (e) {
//         var t = this;
//         if (void 0 === e) {
//             e = {};
//         }
//         if (0 != this._isSave) {
//             setTimeout(function () {
//                 t._isSave = !0;
//             }, 5e3);
//             this._isSave = !1;
//             if ("{}" == user_default.get_string_for_key("AL_Hua_Save_Game_Data", "{}")) {
//                 if (e.callFun) {
//                     e.callFun({
//                         msg: "没有需要保存的数据",
//                         code: 500
//                     });
//                 }
//                 return console.log("没有需要保存的数据");
//             }
//             this.instance && this.getLocalDataVersion() >= this.getOnlineDataVersion() ?
//                 this.instance.beifenYouxiShuju(function (t) {
//                     if (e.callFun) {
//                         e.callFun(t);
//                     }
//                 }) :
//                 (console.log("版本号小于线上版本号", this.getLocalDataVersion(), this.getOnlineDataVersion()),
//                     e.callFun &&
//                     e.callFun({
//                         msg: "版本号小于线上版本号",
//                         code: 500
//                     }));
//         }
//     },
//     huoquXianshangYouxiShuju: function (e) {
//         var t = this;
//         if (void 0 === e) {
//             e = null;
//         }
//         if (0 == this._isGetOnlineData) {
//             return al_show_log("-------正在查询数据请稍后！");
//         }
//         setTimeout(function () {
//             t._isGetOnlineData = !0;
//         }, 5e3);
//         this._isGetOnlineData = !1;
//         console.log("=====huoquXianshangYouxiShuju");
//         if (this.instance) {
//             this.instance.huoquXianshangYouxiShuju(e);
//         }
//     },
//     getOnlineDataVersion: function () {
//         return user_default.get_int_for_key("al_Online_Data_Version", 0);
//     },
//     getLocalDataVersion: function () {
//         return user_default.get_int_for_key("AL_Hua_Data_Version", 0);
//     },
//     baocunTupian: function (e, t) {
//         if (void 0 === t) {
//             t = null;
//         }
//         this.instance.baocunTupian(e, t);
//     },
//     jianchaDuogeDingdanZhuangtai: function (e, t) {
//         this.instance.jianchaDuogeDingdanZhuangtai(e, t);
//     },
//     saomiaoCaozuo: function (e) {
//         this.instance.saomiaoCaozuo(e);
//     },
//     yibuJIanchaMeitiNeirong: function (e) {
//         if (void 0 === e) {
//             e = {
//                 media_url: "",
//                 callFun: callFun
//             };
//         }
//         this.instance.yibuJIanchaMeitiNeirong(e);
//     },
//     yibuJianchaXiaoxiNeirong: function (e) {
//         if (void 0 === e) {
//             e = {
//                 content: "",
//                 callFun: callFun
//             };
//         }
//         this.instance.yibuJianchaXiaoxiNeirong(e);
//     },
//     jianchaZaixianShujuShifouKaiqi: function (e) {
//         return this.instance ? this.instance.jianchaZaixianShujuShifouKaiqi(e) : 0;
//     },
//     huoquZifuchuanZhi: function (e) {
//         return this.instance ? this.instance.huoquZifuchuanZhi(e) : "";
//     },
//     huoquJishiPaihangbangShifouKeyong: function () {
//         if (this.instance) {
//             this.instance.huoquJishiPaihangbangShifouKeyong();
//         }
//         return !1;
//     },
//     setImRankData: function (e) {
//         if (this.instance) {
//             this.instance.setImRankData(e);
//         }
//     },
//     getImRankList: function (e) {
//         if (this.instance) {
//             this.instance.setImRankData(e);
//         }
//     },
//     xianshiCebianlan: function (e) {
//         if (this.instance) {
//             this.instance.xianshiCebianlan(e);
//         }
//     },
//     setClipboardData: function (e, t, o) {
//         if (void 0 === e) {
//             e = "";
//         }
//         if (void 0 === o) {
//             o = 1;
//         }
//         if (this.instance) {
//             this.instance.setClipboardData(e, t, o);
//         }
//     },
//     baocunYouxiShuju: function (e, t) {
//         if (this.instance) {
//             this.instance.baocunYouxiShuju(e, t);
//         }
//     },
//     createGameClubButton: function (e, t, o) {
//         if (void 0 === t) {
//             t = !1;
//         }
//         if (void 0 === o) {
//             o = null;
//         }
//         if (this.instance) {
//             this.instance.createGameClubButton(e, t, o);
//         }
//     },
//     createUserInfoButton: function (e) {
//         if (this.instance) {
//             this.instance.createUserInfoButton(e);
//         }
//     },
//     yincangYouxiJulebuAnniu: function () {
//         if (this.instance) {
//             this.instance.yincangYouxiJulebuAnniu();
//         }
//     },
//     xianshiYouxiJulebuAnniu: function () {
//         if (this.instance) {
//             this.instance.xianshiYouxiJulebuAnniu();
//         }
//     },
//     huoquYonghuDingdanLiebiao: function (e) {
//         var t = this;
//         if (0 == this._isCheckOrde) {
//             return al_show_log("======正在查询请稍后再试==== ");
//         }
//         setTimeout(function () {
//             t._isCheckOrde = !0;
//         }, 5e3);
//         this._isCheckOrde = !1;
//         if (this.instance) {
//             this.instance.huoquYonghuDingdanLiebiao(e);
//         }
//     },
//     tijiaoPaihangbangShuju: function (e) {
//         // if (void 0 === e) {
//         //     e = null;
//         // }
//         // if (null != e) {
//         //     this.instance ? this.instance.tijiaoPaihangbangShuju(e) : console.log("初始化未完成，請稍後再試");
//         // }
//     },
//     huoquPaihangbangShuju: function (e) {
//         this.instance ? this.instance.huoquPaihangbangShuju(e) : console.log("初始化未完成，請稍後再試");
//     },
//     tijiaoShijiePaihangbangShuju: function (e) {
//         this.instance ?
//             this.instance.tijiaoShijiePaihangbangShuju(e) :
//             (console.log("初始化未完成，請稍後再試"), e.fail && e.fail());
//     },
//     huoquShijiePaihangbangShuju: function (e) {
//         this.instance ? this.instance.huoquShijiePaihangbangShuju(e) : (console.log("初始化未完成，請稍後再試"), e.fail && e.fail());
//     },
//     midasZhifuJiekou: function (e, t, o) {
//         this.instance ? this.instance.midasZhifuJiekou(e, t, o) : console.log("初始化未完成，請稍後再試");
//     },
//     chaxunDuihuanmaXinxi: function (e, t, o) {
//         this.instance ? this.instance.chaxunDuihuanmaXinxi(e, t, o) : console.log("初始化未完成，請稍後再試");
//     },
//     xianshiGengDuoYouxiAnniu2: function (e, t) {
//         // if (void 0 === e) {
//         //     e = !1;
//         // }
//         // if (void 0 === t) {
//         //     t = 0;
//         // }
//         // if (!this._isCloseAD) {
//         //     this.addBossTitle("互推 更多游戏按钮");
//         //     if (this.instance && this.isInitOver()) {
//         //         this.instance.xianshiGengDuoYouxiAnniu2(e, t);
//         //     }
//         // }
//     },
//     yincangGengDuoYouxiAnniu2: function () {
//         // if (this.instance && this.isInitOver()) {
//         //     this.instance.yincangGengDuoYouxiAnniu2();
//         // }
//     },
//     getGameClubData: function (e) {
//         if (this.instance && this.isInitOver()) {
//             this.instance.getGameClubData(e);
//         }
//     },
//     huoquPaihangbangZhanghuXinxi: function (e) {
//         if (this.instance && this.isInitOver()) {
//             this.instance.huoquPaihangbangZhanghuXinxi(e);
//         }
//     },
//     duochongJiancha: function () {
//         if (this.instance && this.isInitOver()) {
//             this.instance.duochongJiancha();
//         }
//     },
//     huoquYoujian: function (e) {
//         if (this.instance && this.isInitOver()) {
//             this.instance.huoquYoujian(e);
//         }
//     },
//     wanledouSubmit: function (e) {
//         console.log("=============wanledouSubmit==");
//         if (this.instance && this.isInitOver() && this.instance.wanledouSubmit) {
//             console.log("=============wanledouSubmit==2");
//             this.instance.wanledouSubmit(e);
//         }
//     }
// };
// window.al_show_log = function (e) {
//     if (al_show_debug) {
//         console.log("lieyoulog---", e);
//     }
// };
// window.ailin_load = function (e, t) {
//     if ("" != e) {
//         if (!compare_version(cc.ENGINE_VERSION, "2.4.0")) {
//             e.indexOf(".png") ? e.replace(".png", "") : e.indexOf(".jpg") && e.replace(".jpg", "");
//         }
//         var o = "Flower/img/" + e;
//         al_show_log("============ailin_load=== urlLocal " + o);
//         cc.loader.loadRes(o, function (o, i) {
//             if (o) {
//                 return console.log("============ailin_load=== err ", JSON.stringify(o));
//             }
//             try {
//                 t(o, i);
//             } catch (t) {
//                 al_show_log("loadRes err:" + t + " url: " + e);
//             }
//         });
//     }
// };
// window.lieyou_loadOnline = function (e, t) {
//     if ("" != e) {
//         var o = {
//             url: e,
//             type: "image"
//         };
//         cc.loader.load(o, function (e, o) {
//             if (!e) {
//                 try {
//                     t(e, o);
//                 } catch (e) {
//                     al_show_log("loadOnline  err:" + e);
//                 }
//             }
//         });
//     }
// };
// window.webCopyString = function (e) {
//     console.log("复制");
//     var t = e + "";
//     var o = document.chuangjian_yuansu_duixiang("textarea");
//     o.value = t;
//     o.setAttribute("readonly", "");
//     o.style.contain = "strict";
//     o.style.position = "absolute";
//     o.style.left = "-9999px";
//     o.style.fontSize = "12pt";
//     var i = getSelection();
//     var n = !1;
//     if (i.rangeCount > 0) {
//         n = i.getRangeAt(0);
//     }
//     document.body.appendChild(o);
//     o.select();
//     o.selectionStart = 0;
//     o.selectionEnd = t.length;
//     var a = !1;
//     try {
//         a = document.execCommand("copy");
//     } catch (e) { }
//     document.body.removeChild(o);
//     if (n) {
//         i.removeAllRanges();
//         i.hebing_duoge_shuzu(n);
//     }
//     ailin_sdk_manager.showToast("已经成功复制到剪切板");
//     return a;
// };






// 引入所需的模块
const GameMiddleDialog = require("./AL_Framework_Game_Middle_Dialog");
const RoundMiddleDialog = require("./AL_Framework_Round_Middle_Dialog");
const ChestDialog = require("./AL_Framework_Chest_Dialog");
const GameRankActivity = require("./AL_Framework_Game_Rank_Activity");
const $baseManager = require("./AL_Framework_Base_Manager");
const sdkUtils = require("./AL_SDK_Utils");
const MiniGameSdk = require("./AL_SDK_MiniGameSdk").MiniGameSdk;

// var $baseManager = require("./AL_Framework_Base_Manager");
// // var $wxManager = require("./AL_Framework_Wx_Manager");
// 设置全局变量
window._sdk_version = "2024.7.9.1";
window._sdk_version_code = 1;

// 配置 SDK 管理器
window.ailin_sdk_manager = module.exports = {
    serverClose: false,
    native_trigger_mode: 0,
    ad_track_log: false,
    instance: null,
    platform: "",
    _SceneScale: 1,
    initOver: false,
    _isCloseAD: false,
    strengthenMode: 0,
    isUserNew: false,
    _isVideo: true,
    _isPay: true,
    _isSave: true,
    _isGetOnlineData: true,
    _isCheckOrde: true,
    _currDate: "",
    _MainScene: "Loading",


    /**
 * 初始化相关配置和数据
 * @param {Object} config - 配置对象
 */
init: function (config) {
    // 如果未传入参数，初始化为一个空对象
    if (typeof config === "undefined") {
        config = {};
    }

    // 如果配置中包含 MainScene 且其值不为空，设置主场景
    if (config && config.MainScene && config.MainScene !== "") {
        this._MainScene = config.MainScene;
    }

    // 获取系统平台名称
    this.getSysPlatformName();

    // 计算画面比例及窗口大小
    const windowSize = cc.winSize;
    const minDimension = windowSize.height > windowSize.width ? windowSize.width : windowSize.height;
    this.sdkWinSize = windowSize;
    this._SceneScale = minDimension / 720;

    // 输出版本日志
    al_show_log(`版本：${_sdk_version}`);

    // 设置平台名称
    this.platform = release_platform;

    // 如果实例未初始化，开始初始化流程
    if (!this.instance) {
        try {
            // 如果全局变量 `ailin_gold_key` 存在且不为空，设置金币键值
            if (ailin_gold_key && ailin_gold_key !== "") {
                ailin.Key_Gold = ailin_gold_key;
            }
        } catch (error) {
            console.error("初始化金币键值时发生错误:", error);
        }

        // 设置基础金币属性
        ailin.Props_Base_Gold = ailin_props_base_gold;

        // 设置 OpenId 和 UUID
        this.setOpenId_uuid();

        al_show_log(">>>>>>>>>>>>         init sdk");

        // 初始化新玩家数据
        this.setNewPlayerData();

        // 初始化游戏数据
        this.initGameData();

        // 创建并初始化 BaseManager 实例
        this.instance = new $baseManager();
        this.instance.init(config);

        // 获取当前日期
        this._currDate = get_time_day_str(ailin_sdk_manager.getTime());

        // 获取是否关闭广告的天数
        this.getCloseAdDay();

        // 设置游戏初始化时间
        this.instance.shezhiYouxiShijian("init");
    }
},

/**
 * 初始化 SDK 配置
 * @param {Object} config - 配置对象
 */
initSDKConfig: function (config) {
    if (typeof config === "undefined") {
        config = {};
    }

    // 遍历配置对象，将其属性拷贝到全局对象中
    for (const key in config) {
        window[key] = config[key];
    }
},

/**
 * 判断是否审核状态
 * @returns {boolean} 是否为审核状态
 */
isShenhe: function () {
    return !!this.instance && this.instance.shifouKaiqi(KEY_IS_SHENHE);
},

/**
 * 获取系统平台名称
 * @returns {string} 系统平台名称，默认为 "web"
 */
getSysPlatformName: function () {
    return "web";
},

/**
 * 短震动
 */
vibrateShort: function () {
    this.addBossTitle("短震动");
    if (this.instance) {
        this.instance.vibrateShort();
    }
},

/**
 * 长震动
 */
vibrateLong: function () {
    this.addBossTitle("长震动");
    if (this.instance) {
        this.instance.vibrateLong();
    }
},

/**
 * 自定义震动
 * @param {string|number} duration - 震动持续时间或描述
 */
vibrateCustom: function (duration) {
    this.addBossTitle(`自定义震动${duration}`);
    if (this.instance) {
        this.instance.vibrateCustom(duration);
    }
},

/**
 * 检测是否可以观看视频
 * @returns {boolean} 是否可以观看视频
 */
jianceShifouYouShipin: function () {
    this.addBossTitle("是否可以看视频");
    return !!this.instance && this.instance.jianceShifouYouShipin();
},

/**
 * 获取系统平台信息
 * @returns {number|string} 平台信息，若实例不存在则返回 -1
 */
huoqu_xitong_pingtai: function () {
    return this.instance ? this.instance.huoqu_xitong_pingtai() : -1;
},

/**
 * 设置 OpenId 和 UUID
 */
setOpenId_uuid: function () {
    // 增加用户进入次数
    user_default.set_data_for_key("enterCount", user_default.get_int_for_key("enterCount", 0) + 1);

    // 如果没有存储 OpenId 或 UUID，则生成新的 UUID
    if (user_default.get_string_for_key("ailin_sdk_openid_uuid", "") === "") {
        this.isUserNew = true;
        const uuidCharacters = [
            "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
            "A", "B", "C", "D", "E", "F", "G", "H", "I", "G", "K", "L", "M", "N", "O", "P",
            "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", 
            "a", "b", "c", "d", "e", "f", "g", "h", "i", "g", "k", "l", "m", "n", "o", 
            "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
        ];
        let generatedUuid = "";
        for (let i = 0; i < 32; i++) {
            generatedUuid += uuidCharacters[parseInt(62 * Math.random())];
        }
        openid_uuid = generatedUuid;

        user_default.set_data_for_key("ailin_sdk_openid_uuid", generatedUuid);
        user_default.set_bool_for_key("newUserFlag", true);
        user_default.set_data_for_key("firsttime", getTime());
    } else {
        openid_uuid = user_default.get_string_for_key("ailin_sdk_openid_uuid", "");
    }
},

/**
 * 初始化游戏数据
 */
initGameData: function () {
    const windowSize = cc.winSize;
    const targetWidth = 0.5625 * windowSize.height;

    if (windowSize.width < targetWidth) {
        ailin._SceneScale = windowSize.width / targetWidth;
        ailin._offsetY = (windowSize.height * (1 - windowSize.width / targetWidth)) / 2;
        ailin._offsetX = (windowSize.width * (1 - windowSize.width / targetWidth)) / 2;
    }
},

/**
 * 游戏隐藏事件处理
 * @param {*} data - 隐藏事件数据
 */
onHide: function (data) {
    if (this.instance) {
        this.instance.onHide(data);
    }
},

/**
 * 游戏显示事件处理
 * @param {*} data - 显示事件数据
 */
onShow: function (data) {
    if (this.instance) {
        this.instance.onShow(data);
    }
},

/**
 * 显示更多游戏加载动画
 * @param {Function} callback - 回调函数
 */
xianshiGengduoYouxiJiazaiDonghua: function (callback = null) {
    if (this.instance) {
        this.instance.xianshiGengduoYouxiJiazaiDonghua(callback);
    } else if (callback) {
        callback();
    }
},

/**
 * 显示 BossKey 节点
 */
showBossKeyNode: function () {
    const windowSize = cc.winSize;
    const bossNodePrefab = al_bossNode_prefab();
    this.node_boss = bossNodePrefab;

    cc.director.getScene().addChild(bossNodePrefab);
    bossNodePrefab.x = windowSize.width / 2;
    bossNodePrefab.y = windowSize.height / 2;

    const widgetComponent = bossNodePrefab.addComponent(cc.Widget);
    widgetComponent.isAlignTop = true;
    widgetComponent.isAlignLeft = true;
    widgetComponent.top = 0;
    widgetComponent.left = 0;

    cc.game.addPersistRootNode(bossNodePrefab);
},

/**
 * 添加 BossKey 标题
 * @param {string} message - 标题信息
 * @param {cc.Color} color - 标题颜色
 */
addBossTitle: function (message = "", color = cc.Color.WHITE) {
    if (this.node_boss && al_show_debug) {
        this.node_boss.getComponent("AL_Framework_Boss_Key_SDK").tianjiaTitle(message, color);
    }
},

/**
 * 显示 Banner 广告
 * @param {Object} options - 广告配置
 */
xianshiBannerGuanggao: function (options = {}) {
    if (!this._isCloseAD && this.instance) {
        this.instance._bannerAdStyle = options;
        this.instance.xianshiBannerGuanggao(options);
    }
},

/**
 * 显示自定义位置的 Banner 广告
 * @param {Object} options - 广告配置
 */
xianshiBannerGuanggaoZidingyi: function (options = {}) {
    if (!this._isCloseAD) {
        this.addBossTitle("显示自定义banner");
        if (this.instance) {
            this.instance._bannerAdStyle = options;
            this.instance.xianshiBannerGuanggaoZidingyi(options);
        }
    }
},

/**
 * 显示底部 Banner 广告
 * @param {Object} options - 广告配置
 */
xianshiBannerGuanggaoDibu: function (options = {}) {
    if (!this._isCloseAD) {
        this.addBossTitle("显示底部banner");

        const touchNode = options.node;
        if (this.instance) {
            if (touchNode && touchNode.isValid) {
                this.instance.bannerTouchNode = touchNode;
                ailin_add_touch_event(touchNode, () => {
                    if (window.nativeTouchCallBack) {
                        window.nativeTouchCallBack();
                    }
                });
            }
            this.instance._bannerAdStyle = {};
            this.instance.xianshiBannerGuanggaoDibu(options);
        }
    }
},

/**
 * 显示顶部 Banner 广告
 * @param {Object} options - 广告配置
 */
xianshiBannerGuanggaoDingbu: function (options = {}) {
    const touchNode = options instanceof cc.Node ? options : options.node;
    if (!this._isCloseAD) {
        this.addBossTitle("显示顶部banner");
        if (this.instance) {
            if (touchNode && touchNode.isValid) {
                this.instance.bannerTouchNode = touchNode;
            }
            this.instance._bannerAdStyle = { y: 0 };
            this.instance.xianshiBannerGuanggaoDingbu(options);
        }
    }
},

/**
 * 检查原生 Banner 广告是否有效
 * @returns {boolean} 是否有效
 */
jianchaYuanshengBannerGuanggaoShifouYouxiao: function () {
    return !!this.instance && this.instance.jianchaYuanshengBannerGuanggaoShifouYouxiao();
},

/**
 * 隐藏 Banner 广告
 */
yincangBannerGuanggao: function () {
    this.addBossTitle("隐藏banner");
    if (this.instance) {
        this.instance.yincangBannerGuanggao();

        // 销毁更多游戏 Banner，如果存在
        if (this.instance.moreGameBanner && this.instance.moreGameBanner.isValid) {
            this.instance.moreGameBanner.destroy();
            this.instance.moreGameBanner = null;
        }
    }
},

/**
 * 显示或隐藏 Banner 广告模板
 */
xianshiHuoYincangBannerGuanggaoMoban: function () {
    this.addBossTitle("隐藏banner Template");
    if (this.instance) {
        this.instance.xianshiHuoYincangBannerGuanggaoMoban();
    }
},

/**
 * 添加原生广告
 * @param {cc.Node} node - 节点
 * @param {number} index - 索引
 * @param {string} adType - 广告类型
 */
tianjiaYuanshengGuanggao: function (node = null, index = 0, adType = AL_AD_TYPE.OTHER) {
    if (!node) {
        ailin_sdk_manager.showToast2("tianjiaYuanshengGuanggao 参数不对");
        return;
    }
    if (!node.getComponent(cc.Sprite)) {
        node.addComponent(cc.Sprite);
    }
    this.addBossTitle("自定义原生广告");
    if (this.instance && this.isInitOver()) {
        this.instance.tianjiaYuanshengGuanggao(node, index, adType);
    }
},

/**
 * 隐藏原生广告
 */
yincangYuanshengGuangao: function () {
    if (this.instance) {
        this.instance.yincangYuanshengGuangao();
    }
},

/**
 * 自定义点击原生广告
 * @param {*} data - 自定义数据
 */
zidingyiDianjiYuanshengGuanggao: function (data = null) {
    if (this.instance) {
        this.instance.zidingyiDianjiYuanshengGuanggao(data);
    }
},

/**
 * 显示激励视频广告
 * @param {Function} callback - 回调函数
 * @param {Object} options - 选项配置
 */
xianshiJiliShipinGuanggao: function (callback, options = { time: 7, node: null }) {
    if (this._isVideo === 0) {
        if (callback) {
            callback(false);
        }
        al_show_log("======视频状态锁定中 ");
        return;
    }

    this.addBossTitle("播放视频");
    this._isVideo = false;

    console.log("====播放视频 ",this.instance);
    if (this.instance) {
        console.log("====播放视频 调用了showRewardedVideoAd");
        //this.instance.xianshiJiliShipinGuanggao("", callback, options);
        // if (callback) {
        //     callback(true);
        // }
        
        MiniGameSdk.AdvertManager.instance.showVideo(
            sdkUtils.AL_SDK_Utils.vidioId,
            (res, count) => {
                console.log("用户看的视频广告个数是:", count); //微信平台只有1个或0个，抖音平台就可能有很多个，开发者可根据个数奖励
                switch (res) {
                    case MiniGameSdk.EAdVideoResult.ACCEPT:
                        //'用户看完广告，可以奖励了'
                        cc.game.resume();
                        if (callback) {
                            callback(true);
                        }
                        
                        break;
                    case MiniGameSdk.EAdVideoResult.REJECT:
                        //'用户拒绝掉了广告，不奖励'
                        MiniGameSdk.API.xianshi_toast_xiaoxi("亲，广告没看完呢");
                        //par2 && par2();
                        if (callback) {
                            callback(false);
                        }
                        break;
                    case MiniGameSdk.EAdVideoResult.ERROR:
                        //'播放广告发生错误，不奖励'
                        MiniGameSdk.API.xianshi_toast_xiaoxi("亲，请稍后再试");
                        cc.game.resume();
                        if (callback) {
                            callback(false);
                        }
                        break;
                    default:
                        break;
                }
            }
        );
    }

    // 解锁视频状态
    setTimeout(() => {
        this._isVideo = true;
    }, 3000);
},

/**
 * 显示机会视频广告
 * @param {Function} callback - 回调函数
 */
xianshiJihuiShipinGuanggao: function (callback) {
    if (this.instance) {
        this.instance.xianshiJihuiShipinGuanggao(callback);
    }
},

/**
 * 显示多个视频广告
 * @param {Function} successCallback - 成功回调
 * @param {Function} errorCallback - 错误回调
 */
xianshiDuogeShipinGuanggao: function (successCallback, errorCallback = null) {
    this.addBossTitle("激励再得接口");
    if (errorCallback) {
        if (this.instance) {
            this.instance.xianshiDuogeShipinGuanggao(successCallback, errorCallback);
        }
    } else {
        console.log("===xianshiDuogeShipinGuanggao  參數不對");
    }
},

/**
 * 点击无广告图标按钮播放视频
 * @param {Function} callback - 回调函数
 */
showVideoWithoutAdIcon: function (callback) {
    this.addBossTitle("点击无广告图标按钮播放视频");

    if ((this.platform === "qq" || this.huoqu_xitong_pingtai() === 0) &&
        this.instance.jianli_shipin_qiehuan &&
        this.instance.levelCount) {
        const config = this.instance.zidong_shipin_dengji_peizhi;

        if (!config || !config.levelInterval || !config.kaishi_putong_guanqia) {
            console.log(`showVideoWithoutAdIcon: levelConfig配置错误: ${JSON.stringify(config)}`);
            callback(false);
            return;
        }

        const startLevel = config.kaishi_putong_guanqia;
        const levelInterval = config.levelInterval;

        if (isNaN(startLevel) || isNaN(levelInterval)) {
            console.log("showVideoWithoutAdIcon: autoVideoLevelConfig参数格式不正确");
            callback(false);
            return;
        }

        if (this.instance.levelCount < startLevel || (this.instance.levelCount - startLevel) % levelInterval !== 0) {
            console.log(`showVideoWithoutAdIcon： 未达到指定关卡: ${this.instance.levelCount}`);
            callback(false);
            return;
        }

        this.xianshiJiliShipinGuanggao(callback);
    } else {
        callback(false);
    }
},

/**
 * 获取渠道授权
 * @param {Function} callback - 回调函数
 */
huoquShouquan: function (callback) {
    this.addBossTitle("获取渠道授权");
    if (this.instance) {
        this.instance.huoquShouquan(callback);
    }
},

/**
 * 登录操作
 */
login: function () {
    if (this.instance) {
        this.instance.login(() => {
            this.instance.fasongDengluZhuizongQingqiu();
            if (this.loginEvent) {
                this.loginEvent();
            }
        });
    }
},

/**
 * 分享到指定渠道
 * @param {string} channel - 渠道标识
 */
fenxiangDao: function (channel) {
    console.log("shareTo888");
    if (this.instance) {
        this.instance.fenxiangDao(channel);
    }
},

/**
 * 查询邀请数据
 * @param {Function} callback - 回调函数
 */
chaxunYaoqingShuju: function (callback) {
    if (this.instance) {
        this.instance.chaxunYaoqingShuju(callback);
    }
},

/**
 * 获取微信用户信息
 * @param {Function} successCallback - 成功回调
 * @param {Function} errorCallback - 错误回调
 */
huoquWxYonghuXinxi: function (successCallback, errorCallback) {
    if (this.instance) {
        this.instance.huoquWxYonghuXinxi(successCallback, errorCallback);
    }
},

/**
 * 检查游戏是否已添加到我的游戏
 * @param {Function} callback - 回调函数
 */
checkAddMyGame: function (callback) {
    if (this.instance) {
        this.instance.checkAddMyGame(callback);
    }
},

/**
 * 提交排行榜分数
 * @param {number} score - 分数
 */
tijiaoPaihangbangFenshu: function (score) {
    if (this.instance) {
        this.instance.tijiaoPaihangbangFenshu(score);
    }
},

/**
 * 显示排行榜页面
 * @param {Function} callback - 回调函数
 */
xianshiPaihangbangYemian: function (callback) {
    if (this.instance) {
        this.instance.xianshiPaihangbangYemian(callback);
    }
},

/**
 * 获取游戏自定义参数
 * @returns {*} 自定义参数
 */
huoquYouxiZidingyiCanshu: function () {
    if (this.instance) {
        return this.instance.huoquYouxiZidingyiCanshu();
    }
},

/**
 * 设置激励 Spot 广告回调
 * @param {Function} callback - 回调函数
 */
shezhiJiliSpotGuanggaoHuidiao: function (callback) {
    if (this.instance) {
        this.instance.shezhiJiliSpotGuanggaoHuidiao(callback);
    }
},

/**
 * 移除激励 Spot 广告回调
 */
yichuJiliSpotGuanggaoHuidiao: function () {
    if (this.instance) {
        this.instance.yichuJiliSpotGuanggaoHuidiao();
    }
},

/**
 * 分享内容
 * @param {Object} options - 分享参数
 */
share: function (options) {
    console.log("shareTo666");
    if (this.instance) {
        this.instance.share(options);
    }
},

/**
 * 显示所有派屏层
 * @param {Function} callback - 回调函数
 */
xianshiSuoyouPaipingCeng: function (callback) {
    if (this.instance) {
        this.instance.xianshiSuoyouPaipingCeng(callback);
    }
},

/**
 * 显示失败派屏层
 * @param {Function} callback - 回调函数
 */
xianshiShibaiPaipingCeng: function (callback) {
    if (this.instance) {
        this.instance.xianshiShibaiPaipingCeng(callback);
    }
},

/**
 * 设置排行榜数据
 * @param {string} key - 排行榜键
 * @param {number} value - 排行榜值
 */
shezhiPaihangbangShuju: function (key, value) {
    if (typeof value === "number" && typeof key === "string") {
        if (this.instance) {
            this.instance.shezhiPaihangbangShuju(key, value);
        }
    } else {
        ailin_sdk_manager.showToast2("提交排行榜数据参数错误");
    }
},

/**
 * 显示论坛
 * @param {Object} options - 论坛选项
 */
xianshiLuntan: function (options) {
    if (this.instance) {
        this.instance.xianshiLuntan(options);
    }
},

/**
 * 关闭论坛
 */
guanbiLuntan: function () {
    if (this.instance) {
        this.instance.guanbiLuntan();
    }
},

/**
 * 跳转到其他 App
 * @param {string} appId - 应用 ID
 * @param {string} path - 路径
 * @param {string} extraData - 额外数据
 * @param {Function} callback - 回调函数
 */
tiaozhuanDaoQitaApp: function (appId, path, extraData, callback) {
    if (this.instance) {
        this.instance.tiaozhuanDaoQitaApp(appId, path, extraData, callback);
    }
},

/**
 * 跳转到新 App
 * @param {Object} options - 跳转选项
 */
tiaozhuanDaoXinApp: function (options = {}) {
    if (this.instance) {
        this.instance.tiaozhuanDaoXinApp(options);
    }
},

/**
 * 显示插屏广告（开始）
 * @param {boolean} isFullScreen - 是否全屏
 * @param {number} delay - 延迟时间
 */
xianshiChapingGuanggaoKaishi: function (isFullScreen = false, delay = 0) {
    if (!this._isCloseAD) {
        this.addBossTitle("插屏 开始");
        if (this.instance) {
            this.instance.xianshiChapingGuanggaoKaishi(isFullScreen, delay);
        }
    }
},

/**
 * 显示插屏广告（暂停）
 * @param {boolean} isFullScreen - 是否全屏
 * @param {number} delay - 延迟时间
 */
xianshiChapingGuanggaoZhangting: function (isFullScreen = false, delay = 0) {
    if (!this._isCloseAD) {
        this.addBossTitle("插屏 暂停");
        if (this.instance) {
            this.instance.xianshiChapingGuanggaoZhangting(isFullScreen, delay);
        }
    }
},

/**
 * 显示插屏广告（其他位置）
 * @param {string} adType - 广告类型
 */
xianshiChapingGuanggaoQitaWeizhi: function (adType = AL_AD_TYPE.OTHER) {
    if (!this._isCloseAD) {
        this.addBossTitle("插屏 其它");
        if (this.instance) {
            this.instance.xianshiChapingGuanggaoQitaWeizhi(adType);
        }
    }
},

/**
 * 显示插屏广告（完成时）
 * @param {boolean} isFullScreen - 是否全屏
 * @param {number} delay - 延迟时间
 * @param {Object} options - 配置对象
 * @param {Function} successCallback - 成功回调
 * @param {Function} errorCallback - 错误回调
 */
xianshiChapingGuanggaoWanchengshi: function (
    isFullScreen = false, delay = 0, options = null, successCallback = null, errorCallback = null
) {
    if (!this._isCloseAD) {
        this.addBossTitle("插屏 结束");
        if (this.instance) {
            this.instance.xianshiChapingGuanggaoWanchengshi(isFullScreen, delay, options, successCallback, errorCallback);
        }
    }
},

/**
 * 检查 SDK 版本是否可用
 * @param {Function} callback - 回调函数
 * @returns {boolean} SDK 是否可用
 */
huoquSdkBanbenShifouKeyong: function (callback) {
    return !this.instance || this.instance.huoquSdkBanbenShifouKeyong(callback);
},

/**
 * 设置新玩家数据
 */
setNewPlayerData: function () {
    const gameEntryCount = user_default.get_int_for_key("comeGameNum", 0);
    user_default.set_data_for_key("comeGameNum", gameEntryCount + 1);

    if (user_default.get_bool_for_key(ailin.Key_NewPlayer, true)) {
        const currentTime = parseInt(getTime() / 1000);
        user_default.set_data_for_key(ailin.Key_OncePlayerTime, currentTime);
        user_default.set_bool_for_key(ailin.Key_NewPlayer, false);
        const currentDay = get_time_day();
        user_default.set_data_for_key(ailin.Key_OncePlayerTimeDay, currentDay);
    }
},

/**
 * 解析数据
 * @param {string} data - 数据字符串
 * @param {string} key - 键值
 * @returns {boolean} 是否匹配
 */
jiexi_shuju: function (data, key) {
    const dataArray = data.split(",");

    for (const item of dataArray) {
        if (item.includes("wait:") && item.split("wait:")[1] === key) {
            return true;
        }

        if (item.includes("waitL")) {
            const [levelThreshold, levelKey] = item.split("waitL")[1].split(":");
            const maxLevel = user_default.get_int_for_key("SDKGameMaxLevel", 0);
            if (levelKey === key && maxLevel > parseInt(levelThreshold)) {
                return true;
            }
        }

        if (item.includes("waitS")) {
            const [scoreThreshold, scoreKey] = item.split("waitS")[1].split(":");
            const maxScore = user_default.get_int_for_key("SDKGameMaxScore", 0);
            if (scoreKey === key && maxScore > parseInt(scoreThreshold)) {
                return true;
            }
        }

        if (item.includes("waitT")) {
            const [timeThreshold, timeKey] = item.split("waitT")[1].split(":");
            const firstPlayTime = user_default.get_int_for_key(ailin.Key_OncePlayerTime, 0);
            const currentTime = parseInt(getTime() / 1000);
            if (timeKey === key && currentTime - firstPlayTime > parseInt(timeThreshold)) {
                return true;
            }
        }

        if (item.includes("waitE")) {
            const [entryThreshold, entryKey] = item.split("waitE")[1].split(":");
            const gameEntryCount = user_default.get_int_for_key("comeGameNum", 0);
            if (entryKey === key && gameEntryCount > parseInt(entryThreshold)) {
                return true;
            }
        }

        if (item.includes("waitD")) {
            const [dayThreshold, dayKey] = item.split("waitD")[1].split(":");
            const firstPlayDay = user_default.get_int_for_key(ailin.Key_OncePlayerTimeDay, 0);
            const currentDay = get_time_day();
            if (dayKey === key && currentDay - firstPlayDay > parseInt(dayThreshold)) {
                return true;
            }
        }
    }

    return false;
},

/**
 * 游戏主页逻辑
 */
gameMain: function () {
    this.addBossTitle("主页打点");
    if (this.instance && this.isInitOver()) {
        this.instance.shezhiYouxiShijian("MainScene");
        this.instance.youxiTongyongShijianChuliLogin();
    }
},

/**
 * 游戏事件开始
 * @param {string} eventName - 事件名称
 */
gameEventBegin: function (eventName = "") {
    this.addBossTitle("开始打点:" + eventName);
    if (this.instance) {
        this.instance.shezhiYouxiShijian(eventName, 0);
    }
},

/**
 * 游戏事件结束
 * @param {string} eventName - 事件名称
 */
gameEventFinish: function (eventName = "") {
    this.addBossTitle("结束打点:" + eventName);
    if (this.instance) {
        this.instance.shezhiYouxiShijian(eventName, 1);
    }
},

/**
 * 游戏事件计次
 * @param {string} eventKey - 事件键
 * @param {string} eventDetail - 事件详情
 */
gameEvent: function (eventKey = "", eventDetail = "") {
    const eventModeMapping = {
        120001: 0, 120011: 0, 12002: 2, 120021: 2, 120022: 2, 120023: 2,
        12003: 1, 120031: 1, 12004: 1, 120041: 1, 12007: 2, 120071: 2,
        120072: 2, 120073: 2, 23008: 1, 12009: 0, 12010: 0, 12021: 1,
        12022: 1, 12023: 1, 12024: 0, 12025: 0, 12050: 2, 120501: 2,
        120502: 2, 120503: 2, 12051: 2, 120511: 2, 120512: 2, 12052: 2,
        120521: 2, 120522: 2, 12053: 2, 120531: 2, 120532: 2, 12054: 2,
        120541: 2, 120542: 2, 12055: 2, 120551: 2, 12056: 2, 120561: 2,
        31001: 0, 31002: 1
    };

    if (this.instance) {
        let onlineMode = window.event_up_mode;
        if (
            this.instance.jianchaZaixianShujuShifouKaiqi &&
            this.instance.jianchaZaixianShujuShifouKaiqi("upMode")
        ) {
            onlineMode = parseInt(this.instance.jianchaZaixianShujuShifouKaiqi("upMode")) || 1;
        }

        if (eventKey in eventModeMapping && eventModeMapping[eventKey] > onlineMode) {
            return;
        }

        this.addBossTitle("计次打点:" + eventKey);
        console.log("gameEvent:", eventKey, eventDetail);
        this.instance.shezhiYouxiShijian(eventKey);
    }
},

/**
 * 设置自定义事件
 * @param {string} eventName - 事件名称
 * @param {Object} eventData - 事件数据
 */
shezhiZidingyiShijian: function (eventName, eventData) {
    if (this.instance) {
        this.instance.shezhiZidingyiShijian(eventName, eventData);
    }
},

/**
 * 显示模态框
 * @param {Object} options - 模态框选项
 */
showModal: function (options = {}) {
    if (!this._isCloseAD) {
        AL_Framework_al_interface.showModal(options);
    }
},

/**
 * 显示提示信息
 * @param {string} message - 提示信息
 */
showToast: function (message = "") {
    AL_Framework_al_interface.showToast(message);
},

/**
 * 显示调试提示信息
 * @param {string} message - 提示信息
 */
showToast2: function (message = "") {
    if (al_show_debug) {
        AL_Framework_al_interface.showToast(message);
    }
},

/**
 * 隐藏提示框
 */
hideToast: function () {
    if (this.instance) {
        this.instance.hideToast();
    }
},

/**
 * 显示加载框
 * @param {string} message - 加载信息
 */
showLoading: function (message = "") {
    if (this.instance) {
        this.instance.showLoading(message);
    }
},

/**
 * 隐藏加载框
 */
hideLoading: function () {
    if (this.instance) {
        this.instance.hideLoading();
    }
},


/**
 * 游戏开始关卡事件
 * @param {number} level - 关卡号，默认值为 -1
 * @param {string} mode - 模式名称，默认值为 "level"
 */
gameBeginLevel: function (level = -1, mode = "level") {
    if (this.instance) {
        console.log("levelEvent-youxi_kaishi:", level, mode);
        ailin_sdk_manager.xianshiJihuiShipinGuanggao();

        if (this.instance.huoquXitongPingtaiZifuchuan() === "web") {
            this.instance.zidingyiYouxiShijian(`level${level}_in`);
        }

        const isInvalid = (value) => value == null || value === "";

        if (isNaN(level) || isInvalid(level) || isInvalid(mode)) {
            ailin_sdk_manager.showToast2("游戏开始统计参数错误");
        } else if (typeof level === "number" && typeof mode === "string") {
            if (mode.length > 15) {
                ailin_sdk_manager.showToast2("模式最长15个字符");
            }
            this.addBossTitle(`开始:${mode} ${level}`);
            al_show_log(`模式 mode ===== ${mode} 游戏开始 level = ${level}`);
            if (this.isInitOver()) {
                this.instance.jinGuanqiaShijian(level, mode, 0);
            }
        } else {
            ailin_sdk_manager.showToast2("游戏开始统计参数错误");
        }
    }
},

/**
 * 游戏失败关卡事件
 * @param {number} level - 关卡号，默认值为 -1
 * @param {string} mode - 模式名称，默认值为 "level"
 */
gameFailLevel: function (level = -1, mode = "level") {
    if (this.instance) {
        console.log("levelEvent-youxi_shibai:", level, mode);

        if (this.instance.huoquXitongPingtaiZifuchuan() === "web") {
            this.instance.zidingyiYouxiShijian(`level${level}_fail`);
        }
    }
},

/**
 * 游戏完成关卡事件
 * @param {number} level - 关卡号，默认值为 -1
 * @param {string} mode - 模式名称，默认值为 "level"
 */
gameFinishLevel: function (level = -1, mode = "level") {
    if (this.instance) {
        console.log("levelEvent-gameFinish:", level, mode);

        if (this.instance.huoquXitongPingtaiZifuchuan() === "web") {
            this.instance.zidingyiYouxiShijian(`level${level}_win`);
        }

        const isInvalid = (value) => value == null || value === "";

        if (isNaN(level) || isInvalid(level) || isInvalid(mode)) {
            ailin_sdk_manager.showToast2("游戏过关统计参数错误");
        } else if (typeof level === "number" && typeof mode === "string") {
            this.instance.gengxinYouxiDangqianGuanqiaXinxi(mode, level, "过关");

            if (mode.length > 15) {
                ailin_sdk_manager.showToast2("模式最长15个字符");
            }

            this.addBossTitle(`过关:${mode} ${level}`);
            al_show_log(`模式 mode ===== ${mode} 游戏过关 level = ${level}`);

            if (level > user_default.get_int_for_key(`SDKGameMaxLevel${mode}`, 0)) {
                user_default.set_data_for_key(`SDKGameMaxLevel${mode}`, level);
            }

            if (this.isInitOver()) {
                const ascribeTo = this.instance.ascribeto;

                if (ascribeTo.isopen && level > user_default.get_int_for_key("GY_LvCount", level - 1)) {
                    user_default.set_data_for_key("GY_LvCount", level);

                    if (level <= (ascribeTo.lvcount === 0 ? 5 : ascribeTo.lvcount)) {
                        this.youxiTongyongShijianChuli(`${50000 + level}`);
                    }
                }

                this.instance.jinGuanqiaShijian(level, mode, 1);
            }
        } else {
            ailin_sdk_manager.showToast2("游戏过关统计参数错误");
        }
    }
},

/**
 * 游戏得分处理
 * @param {string} mode - 模式名称
 * @param {number} score - 分数
 */
gameScore: function (mode, score) {
    al_show_log(`模式 mode ===== ${mode} 分数 score = ${score}`);
    const maxScoreKey = `SDKGameMaxScore${mode}`;
    if (score > user_default.get_int_for_key(maxScoreKey, 0)) {
        user_default.set_data_for_key(maxScoreKey, score);
    }
},

/**
 * 添加提示信息
 * @param {string} title - 提示标题
 * @param {string} message - 提示内容
 * @param {string} type - 提示类型
 */
tianjiaTishiXinxi: function (title, message, type) {
    if (this.instance) {
        this.instance.tianjiaTishiXinxi(title, message, type);
    }
},

/**
 * 显示分享对话框
 * @param {Object} options - 分享选项
 */
xianshiFenxiangDuihuakuang: function (options) {
    if (this.instance) {
        this.instance.xianshiFenxiangDuihuakuang(options);
    }
},

/**
 * 添加本地卡片对话框
 * @param {Object} options - 卡片选项
 */
tianjiaBendiKapianDuihuakuang: function (options) {
    if (this.instance) {
        this.instance.tianjiaBendiKapianDuihuakuang(options);
    }
},

/**
 * 获取在线配置
 * @param {string} key - 配置键
 * @param {Object} defaultValue - 默认值
 * @returns {*} 在线配置数据
 */
huoquPeizhiByZaixian: function (key, defaultValue) {
    if (this.instance) {
        return this.instance.huoquPeizhiByZaixian(key, defaultValue);
    }
},

/**
 * 获取资源从在线资源
 * @param {string} resourceKey - 资源键
 * @param {Function} callback - 回调函数
 */
huoquZiyuanCongZaixianZiyuan: function (resourceKey, callback) {
    if (this.instance) {
        this.instance.huoquZiyuanCongZaixianZiyuan(resourceKey, callback);
    }
},

/**
 * 获取登录数据
 * @returns {*} 登录数据
 */
huoquDengluShuju: function () {
    if (this.instance) {
        return this.instance.huoquDengluShuju();
    }
},

/**
 * 显示猜你喜欢
 * @param {Object} options - 配置选项
 */
xianshiCainixihuan: function (options) {
    if (!this._isCloseAD && this.instance) {
        this.instance.xianshiCainixihuan(options);
    }
},

/**
 * 显示猜你喜欢2
 * @param {Object} options - 配置选项
 */
xianshiCainixihuan2: function (options) {
    if (!this._isCloseAD && this.instance) {
        this.instance.xianshiCainixihuan2(options);
    }
},

/**
 * 返回主界面并跳转游戏
 */
fanhuizhujiemianTiaozhuanYouxi: function () {
    if (this.instance) {
        this.instance.fanhuizhujiemianTiaozhuanYouxi();
    }
},

/**
 * 分享到群的逻辑处理
 * @param {Function} callback 分享结果的回调函数
 * @param {string} tag 分享标识
 * @param {number} interval 时间间隔（小时）
 * @param {number} maxCount 最大分享次数
 */
shareToCrowd: function (callback, tag = "", interval = 1, maxCount = 1) {
    if (this.instance) {
        this.instance.share({
            name: GameName,
            source: 5,
            success: function (result, additionalTag) {
                if (result === 1) {
                    if (additionalTag) {
                        const shareKey = `ShareToCrowd${additionalTag}${maxCount}_${interval}${tag}`;
                        const shareData = user_default.get_string_for_key(shareKey, "0,0").split(",");
                        let currentCount = parseInt(shareData[0]);
                        let lastShareTime = parseInt(shareData[1]);
                        const currentHour = Math.floor(Date.now() / 36e5);

                        if (currentHour >= lastShareTime + interval) {
                            currentCount = 1;
                            lastShareTime = currentHour;
                        } else {
                            currentCount++;
                        }

                        user_default.set_data_for_key(shareKey, `${currentCount},${lastShareTime}`);
                        callback(currentCount <= maxCount ? 1 : -1);
                    } else {
                        callback(1);
                    }
                } else {
                    callback(0);
                }
            }
        });
    }
},

/**
 * 调用安卓接口
 * @param {string} param 传递的参数
 */
diaoyongAnzhuoJiekou: function (param) {
    if (this.instance) {
        this.instance.diaoyongAnzhuoJiekou(param);
    }
},

/**
 * 调用安卓接口2，支持两参数
 * @param {string} param1 第一个参数
 * @param {string} param2 第二个参数
 */
diaoyongAnzhuoJiekou2: function (param1, param2) {
    if (this.instance) {
        this.instance.diaoyongAnzhuoJiekou2(param1, param2);
    }
},

/**
 * 调用支付接口并控制支付状态
 * @param {string} param1 支付参数1
 * @param {string} param2 支付参数2
 */
diaoyongZhifuJiekou: function (param1, param2) {
    this.addBossTitle("调用支付");

    if (!this._isPay) {
        al_show_log("======正在支付中 ");
        return;
    }

    setTimeout(() => {
        this._isPay = true;
    }, 3000);

    this._isPay = false;

    if (this.instance) {
        this.instance.diaoyongZhifuJiekou(param1, param2);
    }
},

/**
 * 检查是否开启某个功能
 * @param {string} featureName 功能名称
 * @returns {boolean} 是否开启
 */
shifouKaiqi: function (featureName) {
    if (this.instance) {
        return this.instance.shifouKaiqi(featureName);
    }
    return false;
},

/**
 * 判断是否是原生平台
 * @returns {boolean} true表示是原生平台
 */
getIsNative: function () {
    return this.huoqu_xitong_pingtai() === 1;
},

/**
 * 返回主界面
 */
fanhuiZhujiemian: function () {
    if (ailin_sdk_manager.isShenhe()) {
        ailin_sdk_manager.diaoyongAnzhuoJiekou(ACTION_EXIT_BACK);
    } else {
        console.log("=========================== GamesLobby");
        cc.audioEngine.stopAll();
        window.bundle_LY.releaseAll();
        cc.assetManager.removeBundle(window.bundle_LY);
        window.bundle_LY = cc.assetManager.getBundle("GameHome");
        ailin_sdk_manager.setOrientation(true);
        cc.director.loadScene(this._MainScene);
    }
},

/**
 * 添加小游戏返回按键
 * @param {Object} config 按键配置
 */
tianjiaXiaoyouxiFanhuiAnniu: function (config = {}) {
    if (this.instance) {
        this.instance.tianjiaXiaoyouxiFanhuiAnniu(config);
    }
},

/**
 * 跳转到小游戏
 * @param {string} gameName 小游戏名称
 * @returns {any} 跳转结果
 */
tiaozhuanXiaoyouxi: function (gameName = "") {
    if (this.instance) {
        return this.instance.tiaozhuanXiaoyouxi(gameName);
    }
},

/**
 * 显示返回主游戏按钮
 * @param {Object} config 按钮配置
 */
xianshiFanhuiqianAnniu: function (config = {}) {
    if (config.node) {
        this.addBossTitle("显示返回主游戏按钮");
        if (this.instance) {
            this.instance.xianshiFanhuiqianAnniu(config);
        }
    } else {
        ailin_sdk_manager.showToast2("xianshiYuanshengGuanggaoBig 参数不对");
    }
},

/**
 * 游戏行为事件上报
 * @param {string} eventName 事件名称
 * @returns {any} 事件上报结果
 */
youxiXingWeishijian: function (eventName) {
    if (this.instance) {
        return this.instance.youxiXingWeishijian(eventName);
    }
},

/**
 * 初始化物理引擎
 * @param {Object} config 物理引擎配置
 */
initPhysics: function (config) {
    cc.game.config.groupList = config["group-list"];
    cc.game.config.collisionMatrix = config["collision-matrix"];
    cc.game._initConfig(cc.game.config);
},

/**
 * 显示评分界面
 * @param {Object} config 配置参数
 */
xianshiPingfen: function (config) {
    if (this.instance) {
        this.instance.xianshiPingfen(config);
    }
},

/**
 * 显示原生Banner广告
 * @param {Object} config 广告配置
 */
xianshiYuanshengBannerGuanggao: function (config) {
    if (!this._isCloseAD) {
        if (this.instance) {
            this.instance.xianshiYuanshengBannerGuanggao(config);
        }
    }
},

/**
 * 隐藏原生Banner广告
 */
yincangYuanshengBannerGuanggao: function () {
    if (this.instance) {
        this.instance.yincangYuanshengBannerGuanggao();
    }
},

/**
 * 显示红包
 * @param {Object} config 配置参数
 */
xianshiHongbao: function (config = {}) {
    // 待补充逻辑
},

/**
 * 显示红包图标
 * @param {Object} config 配置参数
 */
xianshiHongbaoTubiao: function (config = {}) {
    // 待补充逻辑
},

/**
 * 显示推荐图标
 * @param {Object} config 配置参数
 */
xianshi_tuijian_tubiao: function (config = {}) {
    if (!this._isCloseAD) {
        if (this.instance) {
            this.instance.xianshi_tuijian_tubiao(config);
        }
    }
},

/**
 * 显示游戏推荐
 * @param {Object|null} config 配置参数，可以为null
 */
xianshi_youxi_tuijian: function (config = null) {
    if (!this._isCloseAD) {
        if (this.instance) {
            this.instance.xianshi_youxi_tuijian(config);
        }
    }
},

/**
 * 显示游戏推荐对话框（占位函数，未实现）
 */
showGameRecommendDialog: function () {
    // 待补充逻辑
},

/**
 * 获取分享或视频广告状态
 * @returns {number} 状态值，0表示不可用
 */
huoquFenxiangHuoShipinZhuangtai: function () {
    return this.instance ? this.instance.huoquFenxiangHuoShipinZhuangtai() : 0;
},

/**
 * 执行分享或视频广告逻辑
 * @param {Object} config 配置参数
 * @returns {number} 执行结果
 */
zhixingFenxiangHuoShipinLuoji: function (config) {
    return this.instance ? this.instance.zhixingFenxiangHuoShipinLuoji(config) : 0;
},

/**
 * 获取跳转按钮是否移动
 * @returns {number} 状态值，0表示不可移动
 */
huoquTiaozhuanAnniuShifouYidong: function () {
    return this.instance ? this.instance.huoquTiaozhuanAnniuShifouYidong() : 0;
},

/**
 * 显示猜你喜欢3的推荐内容
 * @param {Object} config 配置参数
 */
xianshiCainixihuan3: function (config) {
    if (!this._isCloseAD) {
        if (this.instance) {
            this.instance.xianshiCainixihuan3(config);
        }
    }
},

/**
 * 刷新Banner广告
 * @param {Object} config 广告配置
 */
shuaxinBannerGuanggao: function (config = {}) {
    if (this.instance) {
        this.instance.shuaxinBannerGuanggao(config);
    }
},

/**
 * 获取基本数据
 * @returns {Object} 返回基本数据
 */
huoquJibenShuju: function () {
    if (this.instance) {
        this.instance.huoquJibenShuju();
    }
    return {};
},

/**
 * 重新加载
 */
reload: function () {
    if (this.instance) {
        this.instance.reload();
    }
},

/**
 * 显示分享视频对话框
 * @param {Object|null} config 配置参数，可以为null
 */
xianshiFenxiangShipinDuihuakuang: function (config = null) {
    if (this.instance) {
        this.instance.xianshiFenxiangShipinDuihuakuang(config);
    }
},

/**
 * 显示添加到收藏夹对话框
 * @param {Object|null} config 配置参数，可以为null
 */
xianshiTianjiaDaoShoucangjiaDuihuaKuang: function (config = null) {
    if (this.instance) {
        this.instance.xianshiTianjiaDaoShoucangjiaDuihuaKuang(config);
    }
},


/**
 * 添加录屏按钮
 * @param {Object} config 按钮配置
 */
tianjiaLupingAnniu: function (config = {}) {
    if (this.instance) {
        this.instance.tianjiaLupingAnniu(config);
    }
},

/**
 * 分享视频
 * @param {Object|null} config 配置参数
 */
fenxiangShipin: function (config = null) {
    if (this.instance) {
        this.instance.fenxiangShipin(config);
    }
},

/**
 * 开始录屏
 * @param {number} duration 录屏时长，默认300秒
 * @param {Object|null} options 录屏参数，可选
 */
kaishiLuping: function (duration = 300, options = null) {
    if (this.instance) {
        this.instance.kaishiLuping(duration, options);
    }
},

/**
 * 暂停录屏
 */
zantingLuping: function () {
    if (this.instance) {
        this.instance.zantingLuping();
    }
},

/**
 * 恢复录屏
 */
resumeLuPing: function () {
    if (this.instance) {
        this.instance.resumeLuPing();
    }
},

/**
 * 停止录屏
 * @param {boolean} save 是否保存录屏，默认true
 */
tingzhiLuping: function (save = true) {
    if (this.instance) {
        this.instance.tingzhiLuping(save);
    }
},

/**
 * 判断是否已安装
 * @param {Object|null} config 配置参数，可选
 */
shefou_yi_anzhuang: function (config = null) {
    if (this.instance) {
        this.instance.shefou_yi_anzhuang(config);
    }
},

/**
 * 执行安装操作
 * @param {Object} config 安装配置
 */
install: function (config = {}) {
    if (this.instance) {
        this.instance.install(config);
    }
},

/**
 * 显示推荐广告开始
 * @param {Object} config 广告配置参数
 */
xianshiTuijianGuanggaoKaishi: function (config = {}) {
    if (this._isCloseAD) {
        config.callBack && config.callBack();
    } else if (this.instance) {
        this.instance.xianshiTuijianGuanggaoKaishi(config);
    } else {
        config.callBack && config.callBack();
    }
},

/**
 * 显示推荐广告完成
 * @param {Object} config 广告配置参数
 */
xianshiTuijianGuanggaoWancheng: function (config = {}) {
    if (this._isCloseAD) {
        config.callBack && config.callBack();
    } else if (this.instance) {
        this.instance.xianshiTuijianGuanggaoWancheng(config);
    } else {
        config.callBack && config.callBack();
    }
},

/**
 * 显示奖励金币格子广告
 * @param {Object} config 配置参数
 */
xianshiJiangliJInbiGezi: function (config = {}) {
    if (this._isCloseAD) {
        config.callBack && config.callBack();
    } else if (this.instance) {
        this.instance.xianshiJiangliJInbiGezi(config);
    } else {
        config.callBack && config.callBack();
    }
},

/**
 * 显示奖励金币条形广告
 * @param {Object} config 配置参数
 */
xianshiJiangliJInbiTiaoxing: function (config = {}) {
    if (this._isCloseAD) {
        config.callBack && config.callBack();
    } else if (this.instance) {
        this.instance.xianshiJiangliJInbiTiaoxing(config);
    } else {
        config.callBack && config.callBack();
    }
},

/**
 * 安装快捷方式
 * @param {Object} config 配置参数
 */
anzhuangKuaijieFangShi: function (config) {
    this.addBossTitle("添加到桌面");
    if (this.instance && this.isInitOver()) {
        this.instance.anzhuangKuaijieFangShi(config);
    }
},

/**
 * 添加到常用功能列表
 * @param {Object} config 配置参数
 */
tianjiaChangyongGongneng: function (config) {
    this.addBossTitle("添加到常用列表");
    if (this.instance && this.isInitOver()) {
        this.instance.tianjiaChangyongGongneng(config);
    }
},

/**
 * 添加安装快捷方式按钮
 * @param {Object} config 配置参数，默认空对象
 */
tianjiaAnzhuangKuaijieFangshi: function (config = {}) {
    this.addBossTitle("添加到桌面按钮");
    if (this.instance && this.isInitOver()) {
        this.instance.tianjiaAnzhuangKuaijieFangshi(config);
    }
},

/**
 * 显示安装快捷方式对话框
 * @param {Object} config 配置参数
 */
xianshiAnzhuangKuaijieFangshiDuihuakuang: function (config) {
    this.addBossTitle("添加到桌面对话框");
    if (this.instance) {
        this.instance.xianshiAnzhuangKuaijieFangshiDuihuakuang(config);
    }
},

/**
 * 显示推荐奖励图标
 * @param {Object} config 配置参数，默认空对象
 */
xianshiTuijianJiangliTubiao: function (config = {}) {
    if (this.instance) {
        this.instance.xianshiTuijianJiangliTubiao(config);
    }
},

/**
 * 设置HTTP GET数据
 * @param {Object} data 请求数据
 * @param {Function} callback 回调函数
 */
shezhiHttpGetShuju: function (data, callback) {
    if (this.instance) {
        this.instance.shezhiHttpGetShuju(data, callback);
    }
},

/**
 * 显示更多游戏图标
 * @param {Object} config 配置参数，默认空对象
 * @param {string} mode 显示模式，默认空字符串
 */
xianshiGengduoYouxiTubiao: function (config = {}, mode = "") {
    if (!this._isCloseAD) {
        mode = "加强";
        this.addBossTitle(`${mode}互推 icon`, mode === "" ? cc.Color.WHITE : cc.Color.RED);
        al_show_log(`xianshiGengduoYouxiTubiao: ${this.isInitOver()}; ${this.issOpenStrengthenMode()}`);
        if (this.instance && this.isInitOver() && this.issOpenStrengthenMode()) {
            this.instance.xianshiGengduoYouxiTubiao(config);
        }
    }
},

/**
 * 显示更多游戏图标（无参数）
 */
xianshiGengDuoYouxiTubiao: function () {
    if (!this._isCloseAD && this.instance) {
        this.instance.xianshiGengDuoYouxiTubiao();
    }
},

/**
 * 隐藏更多游戏图标
 */
yincangGengduoYouxiTubiao: function () {
    if (this.instance) {
        this.instance.yincangGengduoYouxiTubiao();
    }
},

/**
 * 显示更多游戏Banner广告
 * @param {Object} config 配置参数，默认空对象
 */
xianshiGengduoYouxiByBanner: function (config = {}) {
    if (!this._isCloseAD) {
        this.addBossTitle("互推 banner");
        if (this.instance && this.isInitOver()) {
            this.instance.xianshiGengduoYouxiByBanner(config);
        }
    }
},

/**
 * 显示更多游戏按钮
 * @param {Object} config 配置参数，默认空对象
 */
xianshiGengDuoYouxiAnniu: function (config = {}) {
    if (!this._isCloseAD) {
        this.addBossTitle("互推 更多游戏");
        if (this.instance && this.isInitOver()) {
            this.instance.xianshiGengDuoYouxiAnniu(config);
        }
    }
},

/**
 * 显示更多游戏侧边栏
 * @param {Object} config 配置参数，默认空对象
 * @param {string} mode 显示模式，默认空字符串
 */
xianshiGengDuoYouxiCebian: function (config = {}, mode = "") {
    if (!this._isCloseAD) {
        mode = "加强";
        this.addBossTitle(`${mode}互推 侧边栏`, mode === "" ? cc.Color.WHITE : cc.Color.RED);
        if (this.instance && this.isInitOver()) {
            this.instance.xianshiGengDuoYouxiCebian(config);
        }
    }
},

/**
 * 显示更多游戏中间布局（一个高度183）
 * @param {Object} config 配置参数，必须包含node属性
 * @param {string} mode 显示模式，默认空字符串
 * @returns {boolean} 是否显示成功
 */
xianshiGengDuoYouxiZhongjian_one: function (config = {}, mode = "") {
    if (!this._isCloseAD) {
        if (config.node) {
            this.addBossTitle(`${mode}互推 一行 高度183`, mode === "" ? cc.Color.WHITE : cc.Color.RED);
            return this.instance && this.isInitOver() && this.instance.xianshiGengDuoYouxiZhongjian_one(config);
        }
        ailin_sdk_manager.showToast2("xianshiGengDuoYouxiZhongjian_one 参数不对");
        return false;
    }
},

/**
 * 显示更多游戏中间布局（两行高度500）
 * @param {Object} config 配置参数
 * @param {string} mode 显示模式，默认空字符串
 * @returns {boolean} 是否显示成功
 */
xianshiGengDuoYouxiZhongjian_two: function (config = {}, mode = "") {
    if (!this._isCloseAD) {
        if (config.scale == null) {
            config.scale = this._SceneScale;
        }
        this.addBossTitle(`${mode}互推 两行 高度500`, mode === "" ? cc.Color.WHITE : cc.Color.RED);
        return this.instance && this.isInitOver() && this.instance.xianshiGengDuoYouxiZhongjian_two(config);
    }
},

/**
 * 显示更多游戏中间布局（三行高度500）
 * @param {Object} config 配置参数，必须包含node属性
 * @returns {boolean} 是否显示成功
 */
xianshiGengDuoYouxiZhongjian_three: function (config = {}) {
    if (!this._isCloseAD) {
        if (config.node) {
            if (config.scale == null) {
                config.scale = this._SceneScale;
            }
            this.addBossTitle("互推 三行 高度500");
            return this.instance && this.isInitOver() && this.instance.xianshiGengDuoYouxiZhongjian_three(config);
        }
        ailin_sdk_manager.showToast2("xianshiGengDuoYouxiZhongjian_three 参数不对");
        return false;
    }
},

/**
 * 显示积木广告
 * @param {Object} config 配置参数
 */
showBlockAd: function (config) {
    if (!this._isCloseAD) {
        this.addBossTitle("自定义qq积木广告");
        if (this.platform === "qq") {
            this.instance.showBlockAd(config);
        }
    }
},

/**
 * 设置广告追踪
 * @param {Object} data 广告数据
 * @param {string} type 广告类型
 * @param {Object} options 其他参数
 */
shezhiGuanggaoZhuizong: function (data, type, options) {
    if (this.instance) {
        this.instance.shezhiGuanggaoZhuizong(data, type, options);
    }
},

/**
 * 设置操作追踪
 * @param {Object} data 操作数据
 */
shezhiCaozuoZhuizong: function (data) {
    if (this.instance) {
        this.instance.shezhiCaozuoZhuizong(data);
    }
},

/**
 * 显示应用盒子广告
 * @param {Object} config 配置参数，默认空对象
 */
xianshi_yingyong_hezi: function (config = {}) {
    if (!this._isCloseAD) {
        this.addBossTitle("显示盒子广告qq");
        if (config.node) {
            if (this.instance) this.instance.xianshi_yingyong_hezi(config);
        } else {
            ailin_sdk_manager.showToast2("xianshi_yingyong_hezi 参数不对");
        }
    }
},

/**
 * 根据键获取参数
 * @param {Object} config 包含键值的配置对象
 * @returns {*} 返回对应键值的参数，或默认值
 */
genjuKeyHuoquCanshu: function (config = {}) {
    if (config.key) {
        return this.instance ? this.instance.genjuKeyHuoquCanshu(config) : config.defaultValue || undefined;
    }
    ailin_sdk_manager.showToast2("genjuKeyHuoquCanshu 参数不对");
},

/**
 * 显示小尺寸原生广告
 * @param {Object} config 配置参数，默认空对象
 * @returns {*} 是否成功显示广告
 */
xianshiYuanshengGuanggaoSmall: function (config = {}) {
    if (!this._isCloseAD) {
        if (config.node && config.bgPath) {
            if (config.scale == null) config.scale = this._SceneScale;
            this.addBossTitle("显示原生广告小 600*150");
            return this.instance && this.isInitOver() && this.instance.xianshiYuanshengGuanggaoSmall(config);
        }
        ailin_sdk_manager.showToast2("xianshiYuanshengGuanggaoSmall 参数不对");
        return false;
    }
},

/**
 * 显示大尺寸原生广告
 * @param {Object} config 配置参数，默认空对象
 * @returns {*} 是否成功显示广告
 */
xianshiYuanshengGuanggaoBig: function (config = {}) {
    if (!this._isCloseAD) {
        if (config.node && config.bgPath) {
            if (config.scale == null) config.scale = this._SceneScale;
            this.addBossTitle("显示原生广告大 600*410");
            return this.instance && this.isInitOver() && this.instance.xianshiYuanshengGuanggaoBig(config);
        }
        ailin_sdk_manager.showToast2("xianshiYuanshengGuanggaoBig 参数不对");
        return false;
    }
},

/**
 * 关闭盒子Banner广告
 */
guanbiHeziBannerGuanggao: function () {
    if (this.instance) {
        return this.instance.guanbiHeziBannerGuanggao();
    }
},

/**
 * 关闭盒子入口广告
 */
guanbiHeziRukouGuanggao: function () {
    if (this.instance) {
        return this.instance.guanbiHeziRukouGuanggao();
    }
},

/**
 * 加载原生广告
 * @param {Object} config 配置参数，默认空对象
 * @returns {*} 是否成功加载广告
 */
xianshiYuanshengGuanggaoLoad: function (config = {}) {
    if (!this._isCloseAD) {
        return this.instance ? this.instance.xianshiYuanshengGuanggaoLoad(config) : undefined;
    }
},

/**
 * 隐藏更多游戏侧边栏
 * @returns {*} 是否成功隐藏
 */
yincangGengDuoYouxiCebian: function () {
    this.addBossTitle("隐藏侧边栏");
    if (this.instance && this.isInitOver()) {
        return this.instance.yincangGengDuoYouxiCebian();
    }
},

/**
 * 获取截图节点
 * @returns {*} 截图节点
 */
huoquJietuJiedian: function () {
    if (this.instance) {
        return this.instance.huoquJietuJiedian();
    }
},

/**
 * 保存图片到相册
 * @param {Object} config 包含节点的配置对象
 */
baocunTupianDaoXiangce: function (config = {}) {
    if (config.node) {
        if (this.instance) this.instance.baocunTupianDaoXiangce(config);
    } else {
        ailin_sdk_manager.showToast2("baocunTupianDaoXiangce 参数不对");
    }
},

/**
 * 添加返回键监听
 * @param {Object} config 包含节点和回调的配置对象
 */
addListenerBackKey: function (config = {}) {
    if (config.node) {
        const self = this;
        cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, function (event) {
            switch (event.keyCode) {
                case cc.macro.KEY.back:
                case 27:
                    if (config.callBack) {
                        config.callBack();
                    } else {
                        if (lieyou_SmallGamePath2 === "") {
                            ailin_sdk_manager.diaoyongAnzhuoJiekou(ACTION_EXIT_BACK);
                        } else {
                            try {
                                self.instance.tiaozhuanXiaoyouxi("");
                            } catch (err) { }
                        }
                    }
                    break;
            }
        }, config.node);
    } else {
        ailin_sdk_manager.showToast2("addListenerBackKey 参数不对");
    }
},

/**
 * 显示版号软著信息
 * @param {Object} config 配置参数，默认空对象
 */
xianshiISBN: function (config = {}) {
    this.addBossTitle("显示版号软著信息");
    if (this.instance && this.isInitOver()) {
        this.instance.xianshiISBN(config);
    }
},

/**
 * 隐藏版号软著信息
 */
yincangISBN: function () {
    if (this.instance) {
        this.instance.yincangISBN();
    }
},

/**
 * 显示用户协议图片
 * @param {Object} config 配置参数
 */
xianshiYonghuXieyi: function (config) {
    this.addBossTitle("显示用户协议图片");
    this.instance.xianshiYonghuXieyi(config);
},

/**
 * 显示用户协议
 * @param {Object} config 配置参数，默认空对象
 */
showUserAgreement: function (config = {}) {
    this.addBossTitle("显示用户协议");
    this.instance.showUserAgreement(config);
},

/**
 * 显示插屏互推广告
 */
xianshiGengduoYouxiWangGe: function () {
    if (!this._isCloseAD) {
        this.addBossTitle("插屏互推");
        if (this.instance && this.isInitOver()) {
            this.instance.xianshiGengduoYouxiWangGe();
        }
    }
},

/**
 * 添加红包图标
 * @param {Object} config 配置参数，必须包含node属性
 */
tianjiaHongbaoTubiao: function (config) {
    if (!this._isCloseAD) {
        if (!config.node) {
            ailin_sdk_manager.showToast2("tianjiaHongbaoTubiao 参数不对");
            return;
        }
        if (this.instance && this.isInitOver()) {
            this.instance.tianjiaHongbaoTubiao(config);
        }
    }
},

/**
 * 添加红包对话框
 */
tianjiaHongbaoDuihuakuang: function () {
    if (!this._isCloseAD) {
        if (this.instance && this.isInitOver()) {
            this.instance.tianjiaHongbaoDuihuakuang();
        }
    }
},

/**
 * 添加取出图标
 * @param {Object} config 配置参数，必须包含node属性
 */
tianjiaQuchuTubiao: function (config) {
    if (!this._isCloseAD) {
        if (!config.node) {
            ailin_sdk_manager.showToast2("tianjiaQuchuTubiao 参数不对");
            return;
        }
        if (this.instance && this.isInitOver()) {
            this.instance.tianjiaQuchuTubiao(config);
        }
    }
},

/**
 * 游戏登录
 * @param {Object} config 配置参数，默认空对象
 */
youxiDengLu: function (config = {}) {
    if (this.instance) {
        this.instance.youxiDengLu(config);
    }
},

/**
 * 显示原生广告1
 * @param {Object} config 配置参数，必须包含node属性
 * @returns {boolean|undefined} 是否显示成功
 */
xianshiYuanshengGuanggao1: function (config = {}) {
    if (!this._isCloseAD) {
        if (config.node) {
            if (config.scale == null) {
                config.scale = this._SceneScale;
            }
            this.addBossTitle("显示原生广告1");
            return this.instance ? this.instance.xianshiYuanshengGuanggao1(config) : undefined;
        }
        ailin_sdk_manager.showToast2("原生广告1 参数不对");
        return false;
    }
},

/**
 * 显示原生广告2
 * @param {Object} config 配置参数，必须包含节点和回调配置
 * @returns {boolean|undefined} 是否显示成功
 */
xianshiYuanshengGuanggao2: function (config = {}) {
    if (!this._isCloseAD) {
        if (!(config.node && config.bgPath && config.clickNode && config.destroyCallBack)) {
            ailin_sdk_manager.showToast2("原生广告2 参数不对");
            return false;
        }
        if (!Array.isArray(config.clickNode)) {
            config.clickNode = [config.clickNode];
        }
        if (config.scale == null) {
            config.scale = this._SceneScale;
        }
        this.addBossTitle("显示原生广告2");
        return this.instance && this.isInitOver() ? this.instance.xianshiYuanshengGuanggao2(config) : undefined;
    }
},

/**
 * 获取原生广告数据
 * @returns {Object|null} 原生广告数据
 */
huoquYuanshengGuanggaoShuju: function () {
    this.addBossTitle("获取原生广告源数据");
    return this.instance ? this.instance.huoquYuanshengGuanggaoShuju() : null;
},

/**
 * 获取大尺寸原生广告数据
 * @returns {null} 返回null，需进一步实现
 */
getNativeAdDataBig: function () {
    this.addBossTitle("获取原生广告源数据big");
    return null;
},

/**
 * 显示原生广告3
 * @param {Object} config 配置参数，必须包含destroyCallBack属性
 * @returns {boolean|undefined} 是否显示成功
 */
xianshiYuanshengGuanggao3: function (config = {}) {
    if (!this._isCloseAD) {
        if (config.destroyCallBack) {
            this.addBossTitle("显示原生广告3");
            return this.instance ? this.instance.xianshiYuanshengGuanggao3(config) : undefined;
        }
        ailin_sdk_manager.showToast2("原生广告3 参数不对");
        return false;
    }
},

/**
 * 显示原生广告4
 * @param {Object} config 配置参数，必须包含node和icon_Node属性
 * @returns {boolean|undefined} 是否显示成功
 */
xianshiYuanshengGuanggao4: function (config = {}) {
    if (!this._isCloseAD) {
        if (config.node && config.icon_Node) {
            this.addBossTitle("显示原生广告4");
            if (this.instance) {
                return this.instance.xianshiYuanshengGuanggao4(config);
            } else if (config.xiaohui_huidiao) {
                config.xiaohui_huidiao();
            }
        } else {
            ailin_sdk_manager.showToast2("原生广告4 参数不对");
            return false;
        }
    }
},

/**
 * 编译字符串
 * @param {string} str 输入的字符串
 * @returns {string} 编译后的字符串
 */
compileStr: function (str) {
    let result = String.fromCharCode(str.charCodeAt(0) + str.length);
    for (let i = 1; i < str.length; i++) {
        result += String.fromCharCode(str.charCodeAt(i) + str.charCodeAt(i - 1));
    }
    return escape(result);
},

/**
 * 解编字符串
 * @param {string} str 已编译的字符串
 * @returns {string} 解编后的字符串
 */
uncompileStr: function (str) {
    str = unescape(str);
    let result = String.fromCharCode(str.charCodeAt(0) - str.length);
    for (let i = 1; i < str.length; i++) {
        result += String.fromCharCode(str.charCodeAt(i) - result.charCodeAt(i - 1));
    }
    return result;
},

/**
 * 广告追踪请求
 * @param {string} traceId 广告追踪ID，默认为空字符串
 * @param {string} eventType 事件类型，默认为空字符串
 * @param {string} adId 广告ID，默认为空字符串
 * @param {number} duration 持续时间，默认为0
 */
guanggaoZhuizongQingqiu: function (traceId = "", eventType = "", adId = "", duration = 0) {
    if (this.instance) {
        this.instance.guanggaoZhuizongQingqiu(traceId, eventType, adId, duration);
    }
},

/**
 * 自定义游戏事件
 * @param {string} event 自定义事件，默认为空字符串
 */
zidingyiYouxiShijian: function (event = "") {
    if (this.instance) {
        this.instance.zidingyiYouxiShijian(event);
    }
},

/**
 * 设置场景名称
 * @param {string} sceneName 场景名称，默认为"MainScene"
 */
shezhiChangjingMingcheng: function (sceneName = "MainScene") {
    this.addBossTitle(`进入场景${sceneName}`);
    if (this.instance) {
        this.instance.shezhiChangjingMingcheng(sceneName);
    }
},

/**
 * 显示游戏门户广告
 */
xianshiYouxiMenhuGuanggao: function () {
    if (!this._isCloseAD && this.instance) {
        this.instance.chuangjianYouxiMenhuGuanggao();
    }
},

/**
 * 添加加强模式的原生广告
 * @param {Object|null} config 配置参数，默认为null
 */
addNativeAd_strengthen: function (config = null) {
    if (!this._isCloseAD) {
        if (this.issOpenStrengthenMode()) {
            this.tianjiaYuanshengGuanggao(config, "加强");
        } else {
            this.addBossTitle("加强 原生icon", cc.Color.RED);
        }
    }
},

/**
 * 显示加强模式下更多游戏图标互推
 * @param {Object} config 配置参数，默认为空对象
 */
showMoreGameByIcon_strengthen: function (config = {}) {
    if (!this._isCloseAD) {
        if (this.issOpenStrengthenMode()) {
            this.xianshiGengduoYouxiTubiao(config, "加强");
        } else {
            this.addBossTitle("加强 互推icon", cc.Color.RED);
        }
    }
},

/**
 * 显示加强模式下更多游戏侧边栏
 * @param {Object} config 配置参数，默认为空对象
 */
showMoreGameSide_strengthen: function (config = {}) {
    if (!this._isCloseAD) {
        if (this.issOpenStrengthenMode()) {
            this.xianshiGengDuoYouxiCebian(config, "加强");
        } else {
            this.addBossTitle("加强 互推侧边栏", cc.Color.RED);
        }
    }
},

/**
 * 显示加强模式下中间互推广告（两行）
 * @param {Object} config 配置参数，默认为空对象
 * @returns {boolean} 是否成功显示广告
 */
showMoreGameMiddle_two_strengthen: function (config = {}) {
    if (!this._isCloseAD) {
        if (this.issOpenStrengthenMode()) {
            return this.xianshiGengDuoYouxiZhongjian_two(config, "加强");
        }
        this.addBossTitle("加强 两行互推", cc.Color.RED);
        return false;
    }
},

/**
 * 显示加强模式下中间互推广告（一行）
 * @param {Object} config 配置参数，默认为空对象
 * @returns {boolean} 是否成功显示广告
 */
showMoreGameMiddle_one_strengthen: function (config = {}) {
    if (!this._isCloseAD) {
        if (this.issOpenStrengthenMode()) {
            return this.xianshiGengDuoYouxiZhongjian_one(config, "加强");
        }
        this.addBossTitle("加强 一行互推", cc.Color.RED);
        return false;
    }
},
/**
 * 显示游戏中间活动
 * @param {Object} config 配置参数
 */
showGameMidActivity: function (config) {
    if (this._isCloseAD) {
        if (config.handle_button_callback) {
            config.handle_button_callback();
        }
        if (config.xiaohui_huidiao) {
            config.xiaohui_huidiao();
        }
        return;
    }
    if (this.instance.dangqian_duihuakuang_qiehuan) {
        this.addBossTitle("wx展示游戏中间互推界面");
        config.dianji_cishu = this.instance.xianshi_wx_banner_dianji_cishu;
        o.default.xianshiYouxiZhongjianDuihuaKuang(config);
    } else {
        if (config.handle_button_callback) {
            config.handle_button_callback();
        }
        if (config.xiaohui_huidiao) {
            config.xiaohui_huidiao();
        }
    }
},

/**
 * 显示回合结束活动
 * @param {Object} config 配置参数
 */
showRoundMidActivity: function (config) {
    if (this._isCloseAD) {
        if (config.handle_button_callback) {
            config.handle_button_callback();
        }
        if (config.xiaohui_huidiao) {
            config.xiaohui_huidiao();
        }
        return;
    }
    if (this.instance.dangqian_duihuakuang_qiehuan) {
        this.addBossTitle("wx展示回合结束互推界面");
        config.dianji_cishu = this.instance.xianshi_wx_banner_dianji_cishu;
        i.default.show_Round_Middle_Dialog(config);
    } else {
        if (config.handle_button_callback) {
            config.handle_button_callback();
        }
        if (config.xiaohui_huidiao) {
            config.xiaohui_huidiao();
        }
    }
},

/**
 * 显示宝箱对话框
 * @param {Function|null} handleButtonCallback 按钮点击回调函数
 * @param {Function|null} dismissCallback 弹窗消失回调函数
 */
xianshiChestDuihuakuang: function (handleButtonCallback = null, dismissCallback = null) {
    if (this._isCloseAD) {
        if (handleButtonCallback) {
            handleButtonCallback();
        }
        if (dismissCallback) {
            dismissCallback();
        }
        return;
    }
    console.log("SDKManager: xianshiChestDuihuakuang: dangqian_duihuakuang_qiehuan: " + this.instance.dangqian_duihuakuang_qiehuan);
    if (this.instance.dangqian_duihuakuang_qiehuan) {
        this.addBossTitle("展示宝箱弹窗");
        const config = {
            kuaisu_dianji_cishu: this.instance.wx_chest_dianji_cishu,
            clickLimit: this.instance.wx_chest_dianji_limit,
            handle_button_callback: handleButtonCallback,
            xiaohui_huidiao: dismissCallback,
            wx_kuaisu_dianji_jiange: this.instance.wx_kuaisu_dianji_jiange,
        };
        n.default.xianshiChestDuihuakuang(config);
    } else {
        if (handleButtonCallback) {
            handleButtonCallback();
        }
        if (dismissCallback) {
            dismissCallback();
        }
    }
},

/**
 * 显示游戏排行榜活动
 * @param {Object} config 配置参数
 */
showGameRankActivity: function (config) {
    if (this.instance.wx_youxi_panhangbang_qihuan) {
        this.addBossTitle("wx排行榜互推界面");
        a.default.showGameRankActivity(config);
    } else {
        if (config.handle_button_callback) {
            config.handle_button_callback();
        }
        if (config.xiaohui_huidiao) {
            config.xiaohui_huidiao();
        }
    }
},

/**
 * 判断初始化是否完成
 * @returns {boolean} 是否完成初始化
 */
isInitOver: function () {
    if (!this.initOver) {
        this.showToast2("初始化未完成");
        return false;
    }
    return true;
},

/**
 * 判断是否开启加强模式
 * @returns {boolean} 是否开启加强模式
 */
issOpenStrengthenMode: function () {
    al_show_log("issOpenStrengthenMode: " + this.strengthenMode);
    return this.isInitOver() && 
           (this.strengthenMode === 2 || (this.strengthenMode === 1 && !this.instance.xiangmu_ceshi_kaiguan));
},

/**
 * 获取原生系统相关信息
 * @returns {string} 系统相关信息
 */
huoquYuanshengXitongXiangguanXinxi: function () {
    return this.instance ? this.instance.huoquYuanshengXitongXiangguanXinxi() : "";
},

/**
 * 消息检查
 * @param {string} message 消息内容
 * @param {Function} callback 消息处理回调
 * @returns {*} 消息检查结果
 */
xiaoxiJiancha: function (message, callback) {
    console.log("msg: " + message);
    if (this.instance) {
        return this.instance.xiaoxiJiancha(message, callback);
    }
},

/**
 * 创建游戏轮播广告
 * @param {Object} config 配置参数，默认为空对象
 * @param {string} title 标题，默认为空字符串
 */
chuangjianYouxiLuanboGuanggao: function (config = {}, title = "") {
    if (!this._isCloseAD) {
        this.addBossTitle(`${title}轮播互推盒子`, title === "" ? cc.Color.WHITE : cc.Color.RED);
        if (this.instance) {
            this.instance.chuangjianYouxiLuanboGuanggao(config);
        }
    }
},

/**
 * 创建游戏侧边栏广告
 * @param {string} title 标题，默认为空字符串
 */
chuangjianYouxiCebianlanGuanggao: function (title = "") {
    if (!this._isCloseAD) {
        this.addBossTitle(`${title}抽屉互推盒子`, title === "" ? cc.Color.WHITE : cc.Color.RED);
        if (this.instance) {
            this.instance.chuangjianYouxiCebianlanGuanggao();
        }
    }
},
/**
 * 创建加强模式下的轮播广告
 * @param {Object} config 配置参数，默认为空对象
 */
createGameCarousel_Strengthen: function (config = {}) {
    if (!this._isCloseAD && this.issOpenStrengthenMode()) {
        this.chuangjianYouxiLuanboGuanggao(config, "加强");
    }
},

/**
 * 创建加强模式下的侧边栏广告
 */
createGameDrawerl_Strengthen: function () {
    if (!this._isCloseAD && this.issOpenStrengthenMode()) {
        this.chuangjianYouxiCebianlanGuanggao("加强");
    }
},

/**
 * 隐藏游戏侧边栏广告
 */
yincangYouxiCebianlanGuanggao: function () {
    if (this.instance) {
        this.instance.yincangYouxiCebianlanGuanggao();
    }
},

/**
 * 创建自定义原生广告
 * @param {cc.Node} node 节点对象 
 */
newNativeCustomAd: function (node) {
    if (!this._isCloseAD) {
        const winSize = cc.winSize;
        al_show_log("newNativeCustomAd: ", node, winSize);

        const scaleX = (node.width * node.anchorX) / winSize.width;
        const scaleY = (node.height * node.scaleY) / winSize.height;
        const worldPosition = node.convertToWorldSpaceAR(node.position);
        const x = worldPosition.x - node.width * node.anchorX * node.scaleX;
        const y = winSize.height - (worldPosition.y + node.height * (1 - node.anchorY) * node.scaleY);

        this.yuanshengZidingyiGuanggao(scaleX, scaleY, x, y);
    }
},

/**
 * 显示自定义原生广告
 * @param {number} scaleX 缩放比例X
 * @param {number} scaleY 缩放比例Y
 * @param {number} x X坐标
 * @param {number} y Y坐标
 */
yuanshengZidingyiGuanggao: function (scaleX, scaleY, x, y) {
    if (!this._isCloseAD && this.instance) {
        this.instance.yuanshengZidingyiGuanggao(scaleX, scaleY, x, y);
    }
},

/**
 * 隐藏原生JS视图广告
 */
yincangYuanshengJsShitu: function () {
    if (this.instance) {
        this.instance.yincangYuanshengJsShitu();
    }
},

/**
 * 设置原生广告点击事件
 */
setNativeClick: function () {
    if (window.nativeTouchCallBack) {
        window.nativeTouchCallBack();
    }
},

/**
 * 检查是否有原生广告显示
 * @returns {boolean} 是否有原生广告显示
 */
shifouYouYuanshengGuanggaoXianshi: function () {
    return this.instance ? this.instance.shifouYouYuanshengGuanggaoXianshi() : false;
},

/**
 * 设置无广告模式
 */
shezhiWuguanggaoMoshi: function () {
    return this.instance ? this.instance.shezhiWuguanggaoMoshi() : false;
},

/** 游戏模式 */
level: 1,
mode: 1,

/**
 * 游戏开始
 * @param {number} mode 游戏模式
 * @param {number} level 游戏关卡
 * @param {Object} extra 额外参数
 */
onGameStart: function (mode, level, extra) {
    this.mode = mode;
    this.level = level;
    if (window.onGameStart) {
        window.onGameStart(mode, level, extra);
    }
    this.gameBeginLevel(level, `模式${mode}`);
},

/**
 * 游戏成功
 * @param {number} mode 游戏模式
 * @param {number} level 游戏关卡
 * @param {Object} extra 额外参数
 */
onGameSuccess: function (mode, level, extra) {
    this.mode = mode;
    this.level = level;
    if (window.onGameSuccess) {
        window.onGameSuccess(mode, level, extra);
    }
    this.gameFinishLevel(level, `模式${mode}`);
    this.instance.zidingyiYouxiShijian(`level${level}_win`);
},

/**
 * 游戏失败
 * @param {number} mode 游戏模式
 * @param {number} level 游戏关卡
 * @param {Object} extra 额外参数
 */
chuli_youxi_shibai: function (mode, level, extra) {
    this.mode = mode;
    this.level = level;
    if (window.chuli_youxi_shibai) {
        window.chuli_youxi_shibai(mode, level, extra);
    }
    console.log("Debug: 游戏失败逻辑开始");
    this.gameFailLevel(level, `模式${mode}`);
    console.log("Debug: 游戏失败逻辑中");
    this.instance.zidingyiYouxiShijian(`level${level}_fail`);
    console.log("Debug: 游戏失败逻辑结束");
},

/**
 * 是否支持支付购买
 * @returns {boolean} 是否支持支付购买
 */
shifouZhifuGoumai: function () {
    return user_default.get_bool_for_key(KEY_IS_OPENPAY, true);
},

/**
 * 显示失灵提示
 * @param {string} message 提示信息
 */
xianshiShilingTishi: function (message) {
    // 待实现的逻辑
},

/**
 * 显示模板广告
 */
xianshiMobanGuanggao: function () {
    if (!this._isCloseAD) {
        this.addBossTitle("显示模板广告");
        if (this.instance && this.isInitOver()) {
            this.instance.xianshiMobanGuanggao();
        }
    }
},

/**
 * 显示相机
 * @param {Function} callback 相机回调
 */
xianshiXiangji: function (callback) {
    this.instance.xianshiXiangji(callback);
},

/**
 * 打开相册
 * @param {Function} callback 相册回调
 */
dakaiXiangce: function (callback) {
    this.instance.dakaiXiangce(callback);
},

/**
 * 保存图片到相册
 * @param {string} image 图片路径
 * @param {Function} callback 保存回调
 */
savePhotoAlbum: function (image, callback) {
    this.instance.savePhotoAlbum(image, callback);
},

/**
 * 读取文件
 * @param {Object} file 文件对象
 */
readFile: function (file) {
    this.instance.readFile(file);
},

/**
 * 读取图像文件
 * @param {Object} file 图片文件对象
 */
duquTuxiangWenjian: function (file) {
    this.instance.duquTuxiangWenjian(file);
},

/**
 * 将缓冲数据转换为Texture2D纹理
 * @param {ArrayBuffer} buffer 缓冲区数据
 * @param {Function} callback 转换完成后的回调函数
 */
bufferConvertTexture2D: function (buffer, callback) {
    const uintArray = new Uint8Array(buffer);
    const length = uintArray.length;
    const charArray = Array.from({ length }, (_, i) => String.fromCharCode(uintArray[i]));

    const binaryString = charArray.join("");
    console.log("------------binaryString " + binaryString);

    const base64String = window.btoa(binaryString);
    const img = new Image();
    img.src = `data:image/jpg;base64,${base64String}`;

    const texture = new cc.Texture2D();
    texture.initWithElement(img, cc.Texture2D.PixelFormat.RGBA8888);

    img.onload = function () {
        console.log(`ailin oppo ++++++++++++binaryString width=${img.width} height=${img.height}`);
        if (callback) {
            callback(texture);
        }
    };
},

/**
 * 人脸识别
 * @param {Object} params 参数对象
 * @param {Function} callback 识别完成后的回调函数
 */
renlianShibie: function (params, callback) {
    this.instance.renlianShibie(params, callback);
},

/**
 * 显示更多游戏面板
 * @param {Object} config 配置参数
 */
showMoreGamePanl: function (config) {
    if (ailin_sdk_manager.huoqu_xitong_pingtai() !== 0 || ailin_sdk_manager.isShenhe()) {
        config.callfun && config.callfun();
    } else {
        AL_Framework_al_interface.xianshi_weixin_juzhen(config.callfun, config.isWin);
    }
},

/**
 * 显示游戏结束面板
 * @param {Object} config 配置参数
 */
showGameOverPanl: function (config) {
    if (ailin_sdk_manager.huoqu_xitong_pingtai() !== 0 || ailin_sdk_manager.isShenhe()) {
        config.callfun && config.callfun();
    } else {
        AL_Framework_al_interface.xianshi_weixin_juzhen(config.callfun, config.isWin);
    }
},

/**
 * 设置屏幕方向
 * @param {boolean} isPortrait 是否为竖屏，默认为true
 */
setOrientation: function (isPortrait = true) {
    if (this.instance) {
        this.instance.setOrientation(isPortrait);
    }
},

/**
 * 关闭广告
 * @param {Object} config 配置参数，默认为一天(AL_CLOSE_TYPE.ONEDAY)
 */
closeAD: function (config = { type: AL_CLOSE_TYPE.ONEDAY }) {
    this._isCloseAD = true;
    this.instance.diaoyongAnzhuoJiekou(1405);

    let closeAdDate = user_default.get_string_for_key("lieyou_closeAD_dateDay", "");
    if (!closeAdDate || new Date(Date.parse(closeAdDate)).getTime() < new Date(Date.parse(this._currDate)).getTime()) {
        closeAdDate = this._currDate;
    }

    console.log("======closeAD========= datatime:", closeAdDate);

    let nextCloseAdDate = new Date(Date.parse(closeAdDate));
    switch (config.type) {
        case AL_CLOSE_TYPE.ONEWEEK:
            nextCloseAdDate.setDate(nextCloseAdDate.getDate() + 7);
            break;
        case AL_CLOSE_TYPE.January:
            nextCloseAdDate.setMonth(nextCloseAdDate.getMonth() + 1);
            break;
        case AL_CLOSE_TYPE.lasting:
            nextCloseAdDate.setFullYear(nextCloseAdDate.getFullYear() + 1000);
            break;
        default:
            nextCloseAdDate.setDate(nextCloseAdDate.getDate() + 1);
            break;
    }

    user_default.set_data_for_key("lieyou_closeAD_dateDay", get_time_day_str(nextCloseAdDate.getTime()));
    console.log("======closeAD========= lieyou_closeAD_dateDay:", get_time_day_str(nextCloseAdDate.getTime()));

    if (this.instance.jichu_zhongjian_jiedian) {
        this.instance.jichu_zhongjian_jiedian.parent = null;
    }

    ailin_sdk_manager.yincangYuanshengBannerGuanggao();
    ailin_sdk_manager.yincangBannerGuanggao();
    ailin_sdk_manager.yincangGengDuoYouxiCebian();
    ailin_sdk_manager.yincangYuanshengGuangao();
},

/**
 * 获取剩余关闭广告的天数
 * @returns {number} 剩余天数，若超过100年则返回-1
 */
getCloseAdDay: function () {
    const closeAdDate = user_default.get_string_for_key("lieyou_closeAD_dateDay", "");
    if (!closeAdDate) {
        this._isCloseAD = false;
        this.instance.diaoyongAnzhuoJiekou(1406);
        return 0;
    }

    const closeAdTime = new Date(Date.parse(closeAdDate)).getTime();
    const currentTime = new Date(Date.parse(this._currDate)).getTime();

    if (closeAdTime < currentTime) {
        user_default.set_data_for_key("lieyou_closeAD_dateDay", "");
        this._isCloseAD = false;
        this.instance.diaoyongAnzhuoJiekou(1406);
        return 0;
    }

    this.instance.diaoyongAnzhuoJiekou(1405);
    this._isCloseAD = true;

    const remainingDays = Math.floor(closeAdTime / (1000 * 3600 * 24) - currentTime / (1000 * 3600 * 24));
    return remainingDays / 365 > 100 ? -1 : remainingDays;
},

/**
 * 启动设置
 */
qidongShezhi: function () {
    this.instance.qidongShezhi();
},

/**
 * 获取当前时间戳
 * @returns {number} 当前时间戳
 */
getTime: function () {
    return ailin_sdk_manager.instance.huoquDangqianShijianchuo();
},

/**
 * 关闭订单
 * @param {Object} order 订单对象
 */
guanbiDingdan: function (order) {
    this.instance.guanbiDingdan(order);
},

/**
 * 发放订单
 * @param {Object} order 订单对象
 * @param {string} status 订单状态，默认为AL_Order_Status.give
 */
fafangDingdan: function (order, status = AL_Order_Status.give) {
    this.instance.fafangDingdan(order, status);
},

/**
 * 检查订单
 * @param {boolean} flag 是否检查，默认为true
 */
jiancha_dingdan: function (flag = true) {
    this.instance.jiancha_dingdan(flag);
},

/**
 * 检查IP地址
 * @param {string} ip IP地址
 */
checkIPAddr: function (ip) {
    // 待实现逻辑
},
/**
 * 游戏通用事件处理
 * @param {string} eventCode 事件代码
 */
youxiTongyongShijianChuli: function (eventCode) {
    al_show_log("归因回传 id: " + eventCode);
    const huichuanType = user_default.get_string_for_key("huichuan", "");
    if (huichuanType === "juliang") {
        this.instance.youxiTongyongShijianChuli({ eventCode });
    } else if (huichuanType === "gdt") {
        this.instance.youxiTongyongShijianChuli2({ eventCode });
    } else if (huichuanType === "oppo") {
        this.youxiTongyongShijianChuli3({ eventCode: `${60000 + num}` });
    }
},

/**
 * 游戏通用新事件处理
 * @param {Object} event 事件对象，包含eventCode属性
 */
gameCommonEventsNew: function (event) {
    al_show_log("归因回传 id: " + event.eventCode);
    const huichuanType = user_default.get_string_for_key("huichuan", "");
    if (huichuanType === "juliang") {
        this.instance.youxiTongyongShijianChuli(event);
    } else if (huichuanType === "gdt") {
        this.instance.youxiTongyongShijianChuli2(event);
    } else if (huichuanType === "oppo") {
        this.youxiTongyongShijianChuli3({ eventCode: `${60000 + num}` });
    }
},

/**
 * 获取服务器时间 （注释掉待实现逻辑）
 * @param {Function} callback 回调函数
 */
huoquFuwuqiShijian: function (callback) {
    // this.instance.huoquFuwuqiShijian(callback);
},

/**
 * 备份游戏数据
 * @param {Object} params 参数对象
 */
beifenYouxiShuju: function (params = {}) {
    if (this._isSave) {
        setTimeout(() => {
            this._isSave = true;
        }, 5000);
        this._isSave = false;

        const savedData = user_default.get_string_for_key("AL_Hua_Save_Game_Data", "{}");
        if (savedData === "{}") {
            if (params.callFun) {
                params.callFun({ msg: "没有需要保存的数据", code: 500 });
            }
            console.log("没有需要保存的数据");
            return;
        }

        if (this.instance && this.getLocalDataVersion() >= this.getOnlineDataVersion()) {
            this.instance.beifenYouxiShuju((response) => {
                if (params.callFun) {
                    params.callFun(response);
                }
            });
        } else {
            console.log("版本号小于线上版本号", this.getLocalDataVersion(), this.getOnlineDataVersion());
            if (params.callFun) {
                params.callFun({ msg: "版本号小于线上版本号", code: 500 });
            }
        }
    }
},

/**
 * 获取线上游戏数据
 * @param {Function} callback 回调函数
 */
huoquXianshangYouxiShuju: function (callback = null) {
    if (!this._isGetOnlineData) {
        al_show_log("-------正在查询数据请稍后！");
        return;
    }
    setTimeout(() => {
        this._isGetOnlineData = true;
    }, 5000);
    this._isGetOnlineData = false;

    console.log("=====huoquXianshangYouxiShuju");
    if (this.instance) {
        this.instance.huoquXianshangYouxiShuju(callback);
    }
},

/**
 * 获取线上数据版本号
 * @returns {number} 版本号
 */
getOnlineDataVersion: function () {
    return user_default.get_int_for_key("al_Online_Data_Version", 0);
},

/**
 * 获取本地数据版本号
 * @returns {number} 版本号
 */
getLocalDataVersion: function () {
    return user_default.get_int_for_key("AL_Hua_Data_Version", 0);
},

/**
 * 保存图片
 * @param {string} imageUrl 图片URL
 * @param {Function} callback 保存完成的回调
 */
baocunTupian: function (imageUrl, callback = null) {
    this.instance.baocunTupian(imageUrl, callback);
},

/**
 * 检查多个订单状态
 * @param {Array} orders 订单数组
 * @param {Function} callback 检查完成回调
 */
jianchaDuogeDingdanZhuangtai: function (orders, callback) {
    this.instance.jianchaDuogeDingdanZhuangtai(orders, callback);
},

/**
 * 扫描操作
 * @param {Object} params 参数对象
 */
saomiaoCaozuo: function (params) {
    this.instance.saomiaoCaozuo(params);
},

/**
 * 异步检查媒体内容
 * @param {Object} params 包含媒体URL和回调函数
 */
yibuJIanchaMeitiNeirong: function (params = { media_url: "", callFun: null }) {
    this.instance.yibuJIanchaMeitiNeirong(params);
},

/**
 * 异步检查消息内容
 * @param {Object} params 包含消息内容和回调函数
 */
yibuJianchaXiaoxiNeirong: function (params = { content: "", callFun: null }) {
    this.instance.yibuJianchaXiaoxiNeirong(params);
},

/**
 * 检查在线数据是否开启
 * @param {Object} params 参数对象
 * @returns {boolean} 是否开启
 */
jianchaZaixianShujuShifouKaiqi: function (params) {
    return this.instance ? this.instance.jianchaZaixianShujuShifouKaiqi(params) : 0;
},

/**
 * 获取字符串值
 * @param {string} key 键名
 * @returns {string} 字符串值
 */
huoquZifuchuanZhi: function (key) {
    return this.instance ? this.instance.huoquZifuchuanZhi(key) : "";
},

/**
 * 获取即时排行榜是否可用
 * @returns {boolean} 是否可用
 */
huoquJishiPaihangbangShifouKeyong: function () {
    if (this.instance) {
        this.instance.huoquJishiPaihangbangShifouKeyong();
    }
    return false;
},

/**
 * 设置即时排行榜数据
 * @param {Object} rankData 排行榜数据
 */
setImRankData: function (rankData) {
    if (this.instance) {
        this.instance.setImRankData(rankData);
    }
},

/**
 * 获取即时排行榜列表
 * @param {Function} callback 排行榜列表回调
 */
getImRankList: function (callback) {
    if (this.instance) {
        this.instance.setImRankData(callback);
    }
},

/**
 * 显示侧边栏
 * @param {Object} params 参数对象
 */
xianshiCebianlan: function (params) {
    if (this.instance) {
        this.instance.xianshiCebianlan(params);
    }
},

/**
 * 设置剪贴板数据
 * @param {string} data 数据字符串
 * @param {Function} callback 回调函数
 * @param {number} flag 标志位，默认为1
 */
setClipboardData: function (data = "", callback, flag = 1) {
    if (this.instance) {
        this.instance.setClipboardData(data, callback, flag);
    }
},

/**
 * 保存游戏数据
 * @param {Object} data 游戏数据
 * @param {Function} callback 保存完成的回调
 */
baocunYouxiShuju: function (data, callback) {
    if (this.instance) {
        this.instance.baocunYouxiShuju(data, callback);
    }
},

/**
 * 创建游戏俱乐部按钮
 * @param {Object} config 按钮配置
 * @param {boolean} show 是否显示按钮，默认为false
 * @param {Function} callback 回调函数
 */
createGameClubButton: function (config, show = false, callback = null) {
    if (this.instance) {
        this.instance.createGameClubButton(config, show, callback);
    }
},

/**
 * 创建用户信息按钮
 * @param {Object} config 按钮配置
 */
createUserInfoButton: function (config) {
    if (this.instance) {
        this.instance.createUserInfoButton(config);
    }
},

/**
 * 隐藏游戏俱乐部按钮
 */
yincangYouxiJulebuAnniu: function () {
    if (this.instance) {
        this.instance.yincangYouxiJulebuAnniu();
    }
},

/**
 * 显示游戏俱乐部按钮
 */
xianshiYouxiJulebuAnniu: function () {
    if (this.instance) {
        this.instance.xianshiYouxiJulebuAnniu();
    }
},

/**
 * 获取用户订单列表
 * @param {Object} params 查询参数
 */
huoquYonghuDingdanLiebiao: function (params) {
    if (!this._isCheckOrde) {
        al_show_log("======正在查询请稍后再试==== ");
        return;
    }

    this._isCheckOrde = false;
    setTimeout(() => {
        this._isCheckOrde = true;
    }, 5000);

    if (this.instance) {
        this.instance.huoquYonghuDingdanLiebiao(params);
    }
},

/**
 * 提交排行榜数据
 * @param {Object} data 排行榜数据
 */
tijiaoPaihangbangShuju: function (data) {
    // 待实现逻辑
},

/**
 * 获取排行榜数据
 * @param {Object} config 排行榜配置
 */
huoquPaihangbangShuju: function (config) {
    if (this.instance) {
        this.instance.huoquPaihangbangShuju(config);
    } else {
        console.log("初始化未完成，请稍后再试");
    }
},

/**
 * 提交世界排行榜数据
 * @param {Object} data 排行榜数据
 */
tijiaoShijiePaihangbangShuju: function (data) {
    if (this.instance) {
        this.instance.tijiaoShijiePaihangbangShuju(data);
    } else {
        console.log("初始化未完成，请稍后再试");
        if (data.fail) {
            data.fail();
        }
    }
},

/**
 * 获取世界排行榜数据
 * @param {Object} data 数据对象
 */
huoquShijiePaihangbangShuju: function (data) {
    if (this.instance) {
        this.instance.huoquShijiePaihangbangShuju(data);
    } else {
        console.log("初始化未完成，请稍后再试");
        if (data.fail) {
            data.fail();
        }
    }
},

/**
 * 米大师支付接口
 * @param {Object} config 支付配置
 * @param {Function} successCallback 支付成功回调
 * @param {Function} failCallback 支付失败回调
 */
midasZhifuJiekou: function (config, successCallback, failCallback) {
    if (this.instance) {
        this.instance.midasZhifuJiekou(config, successCallback, failCallback);
    } else {
        console.log("初始化未完成，请稍后再试");
    }
},

/**
 * 查询兑换码信息
 * @param {Object} config 查询配置
 * @param {Function} successCallback 查询成功回调
 * @param {Function} failCallback 查询失败回调
 */
chaxunDuihuanmaXinxi: function (config, successCallback, failCallback) {
    if (this.instance) {
        this.instance.chaxunDuihuanmaXinxi(config, successCallback, failCallback);
    } else {
        console.log("初始化未完成，请稍后再试");
    }
},

/**
 * 显示“更多游戏”按钮2
 * @param {Object} config 按钮配置
 * @param {Function} callback 回调函数
 */
xianshiGengDuoYouxiAnniu2: function (config, callback) {
    // 待实现逻辑
},

/**
 * 隐藏“更多游戏”按钮2
 */
yincangGengDuoYouxiAnniu2: function () {
    // 待实现逻辑
},

/**
 * 获取游戏俱乐部数据
 * @param {Object} params 请求参数
 */
getGameClubData: function (params) {
    if (this.instance && this.isInitOver()) {
        this.instance.getGameClubData(params);
    }
},

/**
 * 获取排行榜账户信息
 * @param {Object} params 请求参数
 */
huoquPaihangbangZhanghuXinxi: function (params) {
    if (this.instance && this.isInitOver()) {
        this.instance.huoquPaihangbangZhanghuXinxi(params);
    }
},

/**
 * 多重检查
 */
duochongJiancha: function () {
    if (this.instance && this.isInitOver()) {
        this.instance.duochongJiancha();
    }
},

/**
 * 获取邮件
 * @param {Object} params 请求参数
 */
huoquYoujian: function (params) {
    if (this.instance && this.isInitOver()) {
        this.instance.huoquYoujian(params);
    }
},

/**
 * 万乐豆提交数据
 * @param {Object} data 数据对象
 */
wanledouSubmit: function (data) {
    console.log("=============wanledouSubmit==");
    if (this.instance && this.isInitOver() && this.instance.wanledouSubmit) {
        console.log("=============wanledouSubmit==2");
        this.instance.wanledouSubmit(data);
    }
}


};

// 日志输出函数
window.al_show_log = function (message) {
    if (al_show_debug) {
        console.log("lieyoulog---", message);
    }
};

/**
 * 加载资源
 * @param {string} resourceName - 资源名称
 * @param {Function} callback - 回调函数
 */
window.ailin_load = function (resourceName, callback) {
    if (resourceName !== "") {
        if (!compare_version(cc.ENGINE_VERSION, "2.4.0")) {
            const isPng = resourceName.indexOf(".png") !== -1;
            const isJpg = resourceName.indexOf(".jpg") !== -1;
            if (isPng) {
                resourceName = resourceName.replace(".png", "");
            } else if (isJpg) {
                resourceName = resourceName.replace(".jpg", "");
            }
        }

        const localUrl = `Flower/img/${resourceName}`;
        al_show_log(`============ailin_load=== urlLocal ${localUrl}`);
        cc.loader.loadRes(localUrl, (error, resource) => {
            if (error) {
                console.log("============ailin_load=== err", JSON.stringify(error));
                return;
            }
            try {
                callback(error, resource);
            } catch (exception) {
                al_show_log(`loadRes err: ${exception} url: ${resourceName}`);
            }
        });
    }
};

/**
 * 加载在线资源
 * @param {string} url - 在线资源的 URL
 * @param {Function} callback - 回调函数
 */
window.lieyou_loadOnline = function (url, callback) {
    if (url !== "") {
        const loadOptions = {
            url: url,
            type: "image",
        };

        cc.loader.load(loadOptions, (error, resource) => {
            if (!error) {
                try {
                    callback(error, resource);
                } catch (exception) {
                    al_show_log(`loadOnline err: ${exception}`);
                }
            }
        });
    }
};

/**
 * 将字符串复制到剪切板
 * @param {string} text - 需要复制的文本
 * @returns {boolean} 是否成功复制
 */
window.webCopyString = function (text) {
    console.log("复制");

    const copyText = `${text}`;
    const textareaElement = document.createElement("textarea");

    textareaElement.value = copyText;
    textareaElement.setAttribute("readonly", "");
    textareaElement.style.contain = "strict";
    textareaElement.style.position = "absolute";
    textareaElement.style.left = "-9999px";
    textareaElement.style.fontSize = "12pt";

    const selection = getSelection();
    let originalRange = null;

    if (selection.rangeCount > 0) {
        originalRange = selection.getRangeAt(0);
    }

    document.body.appendChild(textareaElement);
    textareaElement.select();
    textareaElement.selectionStart = 0;
    textareaElement.selectionEnd = copyText.length;

    let successfullyCopied = false;

    try {
        successfullyCopied = document.execCommand("copy");
    } catch (error) {
        console.error("复制失败:", error);
    }

    document.body.removeChild(textareaElement);

    if (originalRange) {
        selection.removeAllRanges();
        selection.addRange(originalRange);
    }

    ailin_sdk_manager.showToast("已经成功复制到剪切板");
    return successfullyCopied;
};
